diff options
-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 |