summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface-definitions/protocols-bfd.xml45
-rwxr-xr-xsrc/conf_mode/protocols_bfd.py16
2 files changed, 34 insertions, 27 deletions
diff --git a/interface-definitions/protocols-bfd.xml b/interface-definitions/protocols-bfd.xml
index 91f0665f9..ab8c9e233 100644
--- a/interface-definitions/protocols-bfd.xml
+++ b/interface-definitions/protocols-bfd.xml
@@ -22,27 +22,34 @@
</valueHelp>
</properties>
<children>
- <leafNode name="local-interface">
+ <node name="source">
<properties>
- <help>Local interface to bind our peer listener to</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces.py</script>
- </completionHelp>
+ <help>Bind listener to specifid interface/address, mandatory for IPv6</help>
</properties>
- </leafNode>
- <leafNode name="local-address">
- <properties>
- <help>Local address to bind our peer listener to</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Local IPv4 address used to connect to the peer</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6</format>
- <description>Local IPv6 address used to connect to the peer</description>
- </valueHelp>
- </properties>
- </leafNode>
+ <children>
+ <leafNode name="interface">
+ <properties>
+ <help>Local interface to bind our peer listener to</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="address">
+ <properties>
+ <help>Local address to bind our peer listener to</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Local IPv4 address used to connect to the peer</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Local IPv6 address used to connect to the peer</description>
+ </valueHelp>
+ </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 92fae990e..6d2b8382a 100755
--- a/src/conf_mode/protocols_bfd.py
+++ b/src/conf_mode/protocols_bfd.py
@@ -35,7 +35,7 @@ bfd
{% endfor -%}
!
{% for peer in new_peers -%}
- peer {{ peer.remote }}{% if peer.multihop %} multihop{% endif %}{% if peer.local_address %} local-address {{ peer.local_address }}{% endif %}{% if peer.local_interface %} interface {{ peer.local_interface }}{% endif %}
+ 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 %}
{% if not peer.shutdown %}no {% endif %}shutdown
{% endfor -%}
!
@@ -64,8 +64,8 @@ def get_config():
bfd_peer = {
'remote': peer,
'shutdown': False,
- 'local_interface': '',
- 'local_address': '',
+ 'src_if': '',
+ 'src_addr': '',
'multihop': False
}
@@ -74,12 +74,12 @@ def get_config():
bfd_peer['shutdown'] = True
# Check if peer has a local source interface configured
- if conf.exists('local-interface'):
- bfd_peer['local_interface'] = conf.return_value('local-interface')
+ if conf.exists('source interface'):
+ bfd_peer['src_if'] = conf.return_value('source interface')
# Check if peer has a local source address configured - this is mandatory for IPv6
- if conf.exists('local-address'):
- bfd_peer['local_address'] = conf.return_value('local-address')
+ if conf.exists('source address'):
+ bfd_peer['src_addr'] = conf.return_value('source address')
# 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
@@ -102,7 +102,7 @@ def verify(bfd):
# IPv6 peers require an explicit local address/interface combination
if vyos.validate.is_ipv6(peer['remote']):
- if not (peer['local_interface'] and peer['local_address']):
+ if not (peer['src_if'] and peer['src_addr']):
raise ConfigError("BFD IPv6 peers require explicit local address/interface setting")
return None