summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhagbard <vyosdev@derith.de>2019-07-05 10:21:14 -0700
committerhagbard <vyosdev@derith.de>2019-07-08 10:01:15 -0700
commitf17f897a315d3177c0c42dd3d3b7dadf307a33c8 (patch)
tree312efe8ddfb7e4bccfbb2f8994acdef419d1c9d7 /src
parent1564ee137c9ea42d6815114fbc7499626af009e6 (diff)
downloadvyos-1x-f17f897a315d3177c0c42dd3d3b7dadf307a33c8.tar.gz
vyos-1x-f17f897a315d3177c0c42dd3d3b7dadf307a33c8.zip
[PPPoE] - T1489: vlan_mon config options
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/accel_pppoe.py19
-rwxr-xr-xsrc/migration-scripts/pppoe-server/1-to-238
2 files changed, 51 insertions, 6 deletions
diff --git a/src/conf_mode/accel_pppoe.py b/src/conf_mode/accel_pppoe.py
index 3c7759b17..9c879502a 100755
--- a/src/conf_mode/accel_pppoe.py
+++ b/src/conf_mode/accel_pppoe.py
@@ -242,13 +242,16 @@ ac-name={{concentrator}}
{% if interface %}
{% for int in interface %}
interface={{int}}
-{% endfor %}
+{% if interface[int]['vlans'] %}
+vlan_mon={{interface[int]['vlans']|join(',')}}
+interface=re:{{int}}\.(409[0-6]|40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{0,2})
{% endif %}
+{% endfor -%}
+{% endif -%}
{% if svc_name %}
service-name={{svc_name}}
-{% endif %}
+{% endif -%}
pado-delay=0
-# maybe: called-sid, tr101, padi-limit etc.
{% if limits %}
[connlimit]
@@ -338,7 +341,7 @@ def get_config():
'client_ip_pool' : '',
'client_ip_subnets' : [],
'client_ipv6_pool' : {},
- 'interface' : [],
+ 'interface' : {},
'ppp_gw' : '',
'svc_name' : '',
'dns' : [],
@@ -357,7 +360,12 @@ def get_config():
if c.exists('service-name'):
config_data['svc_name'] = c.return_value('service-name')
if c.exists('interface'):
- config_data['interface'] = c.return_values('interface')
+ for intfc in c.list_nodes('interface'):
+ config_data['interface'][intfc] = {'vlans' : []}
+ if c.exists('interface ' + intfc + ' vlan-id'):
+ config_data['interface'][intfc]['vlans'] += c.return_values('interface ' + intfc + ' vlan-id')
+ if c.exists('interface ' + intfc + ' vlan-range'):
+ config_data['interface'][intfc]['vlans'] +=c.return_values('interface ' + intfc + ' vlan-range')
if c.exists('local-ip'):
config_data['ppp_gw'] = c.return_value('local-ip')
if c.exists('dns-servers'):
@@ -491,7 +499,6 @@ def get_config():
if c.exists('authentication radius-settings rate-limit vendor'):
config_data['authentication']['radiusopt']['shaper']['vendor'] = c.return_value('authentication radius-settings rate-limit vendor')
-
if c.exists('mtu'):
config_data['mtu'] = c.return_value('mtu')
diff --git a/src/migration-scripts/pppoe-server/1-to-2 b/src/migration-scripts/pppoe-server/1-to-2
new file mode 100755
index 000000000..fa83896d3
--- /dev/null
+++ b/src/migration-scripts/pppoe-server/1-to-2
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+
+# Convert "service pppoe-server interface ethX"
+# to:
+# "service pppoe-server interface ethX {}"
+
+import sys
+
+from vyos.configtree import ConfigTree
+
+if (len(sys.argv) < 1):
+ print("Must specify file name!")
+ sys.exit(1)
+
+file_name = sys.argv[1]
+
+with open(file_name, 'r') as f:
+ config_file = f.read()
+
+ctree = ConfigTree(config_file)
+cbase = ['service', 'pppoe-server','interface']
+
+if not ctree.exists(cbase):
+ sys.exit(0)
+else:
+ nics = ctree.return_values(cbase)
+ # convert leafNode to a tagNode
+ ctree.set(cbase)
+ ctree.set_tag(cbase)
+ for nic in nics:
+ ctree.set(cbase + [nic])
+
+ try:
+ open(file_name,'w').write(ctree.to_string())
+ except OSError as e:
+ print("Failed to save the modified config: {}".format(e))
+ sys.exit(1)
+