diff options
-rw-r--r-- | interface-definitions/protocols-bfd.xml | 12 | ||||
-rwxr-xr-x | src/conf_mode/protocols_bfd.py | 8 |
2 files changed, 20 insertions, 0 deletions
diff --git a/interface-definitions/protocols-bfd.xml b/interface-definitions/protocols-bfd.xml index ab8c9e233..a731334a0 100644 --- a/interface-definitions/protocols-bfd.xml +++ b/interface-definitions/protocols-bfd.xml @@ -50,6 +50,18 @@ </leafNode> </children> </node> + <leafNode name="multiplier"> + <properties> + <help>Multiplier to determine packet loss</help> + <valueHelp> + <format>2-255</format> + <description>Remote transmission interval will be multiplied by this value</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 2-255"/> + </constraint> + </properties> + </leafNode> <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 6d2b8382a..96a41de11 100755 --- a/src/conf_mode/protocols_bfd.py +++ b/src/conf_mode/protocols_bfd.py @@ -36,6 +36,7 @@ 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 }} {% if not peer.shutdown %}no {% endif %}shutdown {% endfor -%} ! @@ -66,6 +67,7 @@ def get_config(): 'shutdown': False, 'src_if': '', 'src_addr': '', + 'multiplier': '3', 'multihop': False } @@ -81,6 +83,12 @@ def get_config(): if conf.exists('source address'): bfd_peer['src_addr'] = conf.return_value('source address') + # Configures the detection multiplier to determine packet loss. The remote + # transmission interval will be multiplied by this value to determine the + # connection loss detection timer. The default value is 3. + if conf.exists('multiplier'): + bfd_peer['multiplier'] = conf.return_value('multiplier') + # Tell BFD daemon that we should expect packets with TTL less than 254 # (because it will take more than one hop) and to listen on the multihop # port (4784) |