diff options
author | DmitriyEshenko <dmitriy.eshenko@vyos.io> | 2020-09-28 07:41:19 +0000 |
---|---|---|
committer | DmitriyEshenko <dmitriy.eshenko@vyos.io> | 2020-09-28 07:41:19 +0000 |
commit | fed3245aef5333e535d10cca976a3d09a8760446 (patch) | |
tree | 3f3bd339cbc14062c1705e850754fd317a5eee95 | |
parent | 41ff73882fb6dad2484d841ed59494f0c963bf5e (diff) | |
download | vyos-1x-fed3245aef5333e535d10cca976a3d09a8760446.tar.gz vyos-1x-fed3245aef5333e535d10cca976a3d09a8760446.zip |
pppoe-server: T2919: Add possibility change Called-Station-Id format
-rw-r--r-- | data/templates/accel-ppp/pppoe.config.tmpl | 3 | ||||
-rw-r--r-- | interface-definitions/service_pppoe-server.xml.in | 20 | ||||
-rwxr-xr-x | src/conf_mode/service_pppoe-server.py | 4 |
3 files changed, 27 insertions, 0 deletions
diff --git a/data/templates/accel-ppp/pppoe.config.tmpl b/data/templates/accel-ppp/pppoe.config.tmpl index 4af0d9365..bdbd32d33 100644 --- a/data/templates/accel-ppp/pppoe.config.tmpl +++ b/data/templates/accel-ppp/pppoe.config.tmpl @@ -186,6 +186,9 @@ vlan-mon={{ interface.name }},{{ interface.vlans | join(',') }} interface=re:{{ interface.name }}\.\d+ {% endif %} {% endfor -%} +{% if radius_called_sid_format %} +called-sid={{ radius_called_sid_format }} +{% endif %} {% endif -%} {% if svc_name %} diff --git a/interface-definitions/service_pppoe-server.xml.in b/interface-definitions/service_pppoe-server.xml.in index 64fd6e4ef..eaaac0d4c 100644 --- a/interface-definitions/service_pppoe-server.xml.in +++ b/interface-definitions/service_pppoe-server.xml.in @@ -135,6 +135,26 @@ </leafNode> </children> </node> + <leafNode name="called-sid-format"> + <properties> + <help>Format of Called-Station-Id attribute</help> + <completionHelp> + <list>ifname ifname:mac</list> + </completionHelp> + <constraint> + <regex>(ifname|ifname:mac)</regex> + </constraint> + <constraintErrorMessage>Invalid Called-Station-Id format</constraintErrorMessage> + <valueHelp> + <format>ifname</format> + <description>NAS-Port-Id - should contain root interface name (NAS-Port-Id=eth1)</description> + </valueHelp> + <valueHelp> + <format>ifname:mac</format> + <description>NAS-Port-Id - should contain root interface name and mac address (NAS-Port-Id=eth1:00:00:00:00:00:00)</description> + </valueHelp> + </properties> + </leafNode> </children> </node> <leafNode name="protocols"> diff --git a/src/conf_mode/service_pppoe-server.py b/src/conf_mode/service_pppoe-server.py index a4e937b1a..9935b166f 100755 --- a/src/conf_mode/service_pppoe-server.py +++ b/src/conf_mode/service_pppoe-server.py @@ -82,6 +82,7 @@ default_config_data = { 'radius_shaper_attr': '', 'radius_shaper_vendor': '', 'radius_dynamic_author': '', + 'radius_called_sid_format': '', 'sesscrtl': 'replace', 'snmp': False, 'thread_cnt': get_half_cpus() @@ -315,6 +316,9 @@ def get_config(config=None): pppoe['radius_dynamic_author'] = dae + if conf.exists(['called-sid-format']): + pppoe['radius_called_sid_format'] = conf.return_value(['called-sid-format']) + # RADIUS based rate-limiter if conf.exists(['rate-limit', 'enable']): pppoe['radius_shaper_attr'] = 'Filter-Id' |