summaryrefslogtreecommitdiff
path: root/src/conf_mode/interfaces-pppoe.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-05-25 21:02:35 +0200
committerChristian Poessinger <christian@poessinger.com>2020-05-26 17:09:33 +0200
commitd5b58517f88358c686e6c8ea039a7a9a64d6c6ee (patch)
tree416632fd648499c40b8f4b8975c1da568af5401f /src/conf_mode/interfaces-pppoe.py
parent0cdfa72d5ccd8a2d382164a1ec39865802d1be7c (diff)
downloadvyos-1x-d5b58517f88358c686e6c8ea039a7a9a64d6c6ee.tar.gz
vyos-1x-d5b58517f88358c686e6c8ea039a7a9a64d6c6ee.zip
dhcpv6-pd: pppoe: T2506: restructure CLI
Rename the CLI nodes for prefix delegation from "dhcpv6-options delegate <interface>" to "dhcpv6-options prefix-delegation interface <interface>". The change is required to add the possibility to request for specific prefix sized via the CLI. That option was not possible with the old configuration tree.
Diffstat (limited to 'src/conf_mode/interfaces-pppoe.py')
-rwxr-xr-xsrc/conf_mode/interfaces-pppoe.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py
index 6cde850c9..e8aeb810f 100755
--- a/src/conf_mode/interfaces-pppoe.py
+++ b/src/conf_mode/interfaces-pppoe.py
@@ -36,7 +36,7 @@ default_config_data = {
'deleted': False,
'description': '\0',
'disable': False,
- 'dhcpv6_pd': [],
+ 'dhcpv6_pd_interfaces': [],
'intf': '',
'idle_timeout': '',
'ipv6_autoconf': False,
@@ -137,15 +137,19 @@ def get_config():
if conf.exists('vrf'):
pppoe['vrf'] = conf.return_value(['vrf'])
- if conf.exists(['dhcpv6-options', 'delegate']):
- for interface in conf.list_nodes(['dhcpv6-options', 'delegate']):
+ if conf.exists(['dhcpv6-options', 'prefix-delegation']):
+ dhcpv6_pd_path = base_path + [pppoe['intf'],
+ 'dhcpv6-options', 'prefix-delegation']
+ conf.set_level(dhcpv6_pd_path)
+
+ for interface in conf.list_nodes(['interface']):
+ conf.set_level(dhcpv6_pd_path + ['interface', interface])
pd = {
'ifname': interface,
'sla_id': '',
'sla_len': '',
'if_id': ''
}
- conf.set_level(base_path + [pppoe['intf'], 'dhcpv6-options', 'delegate', interface])
if conf.exists(['sla-id']):
pd['sla_id'] = conf.return_value(['sla-id'])
@@ -153,10 +157,10 @@ def get_config():
if conf.exists(['sla-len']):
pd['sla_len'] = conf.return_value(['sla-len'])
- if conf.exists(['interface-id']):
- pd['if_id'] = conf.return_value(['interface-id'])
+ if conf.exists(['address']):
+ pd['if_id'] = conf.return_value(['address'])
- pppoe['dhcpv6_pd'].append(pd)
+ pppoe['dhcpv6_pd_interfaces'].append(pd)
return pppoe
@@ -223,7 +227,7 @@ def generate(pppoe):
render(script_pppoe_ipv6_up, 'pppoe/ipv6-up.script.tmpl',
pppoe, trim_blocks=True, permission=0o755)
- if len(pppoe['dhcpv6_pd']) > 0:
+ if len(pppoe['dhcpv6_pd_interfaces']) > 0:
# ipv6.tmpl relies on ifname - this should be made consitent in the
# future better then double key-ing the same value
pppoe['ifname'] = intf