diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-03-28 12:06:41 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-03-28 12:06:41 +0100 |
commit | 792c00a018d0b237996e60845edf8ad970c4afbb (patch) | |
tree | 15bea8859399c540db517c46bd78e75a5e005e78 /src/conf_mode/interfaces-pseudo-ethernet.py | |
parent | a0424f9c6a4cf813934d5a3bc877fddae6eb99de (diff) | |
parent | 822e171a0023c3f8f335cda08bcbf70b2d6d4070 (diff) | |
download | vyos-1x-792c00a018d0b237996e60845edf8ad970c4afbb.tar.gz vyos-1x-792c00a018d0b237996e60845edf8ad970c4afbb.zip |
Merge branch 't1831-ipv6' into current
* t1831-ipv6:
ipv6: T1831: migrate eui64 addressing to XML and python
vyos.util: import cleanup
ipv6: T1831: migrate autoconf node
ipv6: T1831: use integers over bool in interface configuration
ipv6: T1831: migrate forwarding and dup-addr-detect-transmits nodes
ipv6: T1831: Makefile: remove node.def files in ipv6 folder
ifconfig: T2057: explicity name state functions
ifconfig: T2167: get_mac was not returning
ifconfig: T2057: add get_alias function
ifconfig: T2057: option forcing
merge config: T2169: remove redundant use of show_config
Diffstat (limited to 'src/conf_mode/interfaces-pseudo-ethernet.py')
-rwxr-xr-x | src/conf_mode/interfaces-pseudo-ethernet.py | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/conf_mode/interfaces-pseudo-ethernet.py b/src/conf_mode/interfaces-pseudo-ethernet.py index 0afae8388..56d4fdfc3 100755 --- a/src/conf_mode/interfaces-pseudo-ethernet.py +++ b/src/conf_mode/interfaces-pseudo-ethernet.py @@ -45,6 +45,10 @@ default_config_data = { 'ip_enable_arp_ignore': 0, 'ip_proxy_arp': 0, 'ip_proxy_arp_pvlan': 0, + 'ipv6_autoconf': 0, + 'ipv6_eui64_prefix': '', + 'ipv6_forwarding': 1, + 'ipv6_dup_addr_detect': 1, 'intf': '', 'link': '', 'link_changed': False, @@ -145,6 +149,22 @@ def get_config(): if conf.exists(['ip', 'proxy-arp-pvlan']): peth['ip_proxy_arp_pvlan'] = 1 + # Enable acquisition of IPv6 address using stateless autoconfig (SLAAC) + if conf.exists('ipv6 address autoconf'): + peth['ipv6_autoconf'] = 1 + + # Get prefix for IPv6 addressing based on MAC address (EUI-64) + if conf.exists('ipv6 address eui64'): + peth['ipv6_eui64_prefix'] = conf.return_value('ipv6 address eui64') + + # Disable IPv6 forwarding on this interface + if conf.exists('ipv6 disable-forwarding'): + peth['ipv6_forwarding'] = 0 + + # IPv6 Duplicate Address Detection (DAD) tries + if conf.exists('ipv6 dup-addr-detect-transmits'): + peth['ipv6_dup_addr_detect'] = int(conf.return_value('ipv6 dup-addr-detect-transmits')) + # Lower link device if conf.exists(['link']): peth['link'] = conf.return_value(['link']) @@ -296,6 +316,14 @@ def apply(peth): p.set_proxy_arp(peth['ip_proxy_arp']) # Enable private VLAN proxy ARP on this interface p.set_proxy_arp_pvlan(peth['ip_proxy_arp_pvlan']) + # IPv6 address autoconfiguration + p.set_ipv6_autoconf(peth['ipv6_autoconf']) + # IPv6 EUI-based address + p.set_ipv6_eui64_address(peth['ipv6_eui64_prefix']) + # IPv6 forwarding + p.set_ipv6_forwarding(peth['ipv6_forwarding']) + # IPv6 Duplicate Address Detection (DAD) tries + p.set_ipv6_dad_messages(peth['ipv6_dup_addr_detect']) # assign/remove VRF p.set_vrf(peth['vrf']) @@ -309,9 +337,9 @@ def apply(peth): # Enable/Disable interface if peth['disable']: - p.set_state('down') + p.set_admin_state('down') else: - p.set_state('up') + p.set_admin_state('up') # Configure interface address(es) # - not longer required addresses get removed first |