diff options
| author | Christian Poessinger <christian@poessinger.com> | 2019-06-22 15:18:31 +0200 | 
|---|---|---|
| committer | Christian Poessinger <christian@poessinger.com> | 2019-06-22 15:24:53 +0200 | 
| commit | 8b8c7424c90275a3814e7c17939cfb3a66145a19 (patch) | |
| tree | 0492867ee03304e1552653de1d2ebe6e803413d9 | |
| parent | 67a35cfc37a5cc34a1b874f69626802ec3d35f94 (diff) | |
| download | vyos-1x-8b8c7424c90275a3814e7c17939cfb3a66145a19.tar.gz vyos-1x-8b8c7424c90275a3814e7c17939cfb3a66145a19.zip | |
bfd: T1183: add rx/tx interval configuration
vyos@vyos# show protocols
 bfd {
     peer 1.1.1.1 {
         interval {
             receive 400
             transmit 300
         }
     }
 }
| -rw-r--r-- | interface-definitions/protocols-bfd.xml | 31 | ||||
| -rwxr-xr-x | src/conf_mode/protocols_bfd.py | 14 | 
2 files changed, 45 insertions, 0 deletions
| diff --git a/interface-definitions/protocols-bfd.xml b/interface-definitions/protocols-bfd.xml index a731334a0..0e92a7ddd 100644 --- a/interface-definitions/protocols-bfd.xml +++ b/interface-definitions/protocols-bfd.xml @@ -62,6 +62,37 @@                    </constraint>                  </properties>                </leafNode> +              <node name="interval"> +                <properties> +                  <help>Configure timer intervals</help> +                </properties> +                <children> +                  <leafNode name="receive"> +                    <properties> +                      <help>Minimum interval of receiving control packets</help> +                      <valueHelp> +                        <format>10-60000</format> +                        <description>Interval in milliseconds</description> +                      </valueHelp> +                      <constraint> +                        <validator name="numeric" argument="--range 10-60000"/> +                      </constraint> +                    </properties> +                  </leafNode> +                  <leafNode name="transmit"> +                    <properties> +                      <help>Minimum interval of transmitting control packets</help> +                      <valueHelp> +                        <format>10-60000</format> +                        <description>Interval in milliseconds</description> +                      </valueHelp> +                      <constraint> +                        <validator name="numeric" argument="--range 10-60000"/> +                      </constraint> +                    </properties> +                  </leafNode> +                </children> +              </node>                <leafNode name="shutdown">                  <properties>                    <help>Disable this peer</help> diff --git a/src/conf_mode/protocols_bfd.py b/src/conf_mode/protocols_bfd.py index 3d60f5358..2f494c2e4 100755 --- a/src/conf_mode/protocols_bfd.py +++ b/src/conf_mode/protocols_bfd.py @@ -37,6 +37,8 @@ bfd  {% for peer in new_peers -%}   peer {{ peer.remote }}{% if peer.multihop %} multihop{% endif %}{% if peer.src_addr %} local-address {{ peer.src_addr }}{% endif %}{% if peer.src_if %} interface {{ peer.src_if }}{% endif %}   detect-multiplier {{ peer.multiplier }} + receive-interval {{ peer.rx_interval }} + transmit-interval {{ peer.tx_interval }}   {% if not peer.shutdown %}no {% endif %}shutdown  {% endfor -%}  ! @@ -68,6 +70,8 @@ def get_config():              'src_if': '',              'src_addr': '',              'multiplier': '3', +            'rx_interval': '300', +            'tx_interval': '300',              'multihop': False          } @@ -95,6 +99,16 @@ def get_config():          if conf.exists('multihop'):              bfd_peer['multihop'] = True +        # Configures the minimum interval that this system is capable of receiving +        # control packets. The default value is 300 milliseconds. +        if conf.exists('interval receive'): +            bfd_peer['rx_interval'] = conf.return_value('interval receive') + +        # The minimum transmission interval (less jitter) that this system wants +        # to use to send BFD control packets. +        if conf.exists('interval transmit'): +            bfd_peer['tx_interval'] = conf.return_value('interval transmit') +          bfd['new_peers'].append(bfd_peer)      return bfd | 
