diff options
| author | Viacheslav <v.gletenko@vyos.io> | 2025-08-23 10:54:04 +0000 |
|---|---|---|
| committer | Viacheslav <v.gletenko@vyos.io> | 2025-08-23 11:02:05 +0000 |
| commit | 40b50f2aae9c54dae037c0190d60ec850dbf0862 (patch) | |
| tree | 3a085031d0e5b3461293dbd9f656f1e0335e61d6 | |
| parent | 968409218f914d180b2f9781edf3423ddb8ac738 (diff) | |
| download | vyos-1x-40b50f2aae9c54dae037c0190d60ec850dbf0862.tar.gz vyos-1x-40b50f2aae9c54dae037c0190d60ec850dbf0862.zip | |
T7743: PPPoE-server add option for VPP control plane
Enable PPPoE control-plane integration with VPP, add configurable
option:
- set service pppoe-server interface eth1 vpp-cp
```
interface=eth1,vpp-cp=true
```
| -rw-r--r-- | data/templates/accel-ppp/pppoe.config.j2 | 5 | ||||
| -rw-r--r-- | interface-definitions/service_pppoe-server.xml.in | 6 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_service_pppoe-server.py | 14 |
3 files changed, 23 insertions, 2 deletions
diff --git a/data/templates/accel-ppp/pppoe.config.j2 b/data/templates/accel-ppp/pppoe.config.j2 index 2c4871a6b..8884fb87f 100644 --- a/data/templates/accel-ppp/pppoe.config.j2 +++ b/data/templates/accel-ppp/pppoe.config.j2 @@ -55,14 +55,15 @@ verbose=1 ac-name={{ access_concentrator }} {% if interface is vyos_defined %} {% for iface, iface_config in interface.items() %} +{% set vpp_cp_opt = ',vpp-cp=true' if iface_config.vpp_cp is vyos_defined else '' %} {% if iface_config.vlan is not vyos_defined %} -interface={{ iface }} +interface={{ iface }}{{ vpp_cp_opt }} {% else %} {% for vlan in iface_config.vlan %} interface=re:^{{ iface }}\.{{ vlan | range_to_regex }}$ {% endfor %} {% if iface_config.combined is vyos_defined %} -interface={{ iface }} +interface={{ iface }}{{ vpp_cp_opt }} {% endif %} {% if iface_config.vlan_mon is vyos_defined %} vlan-mon={{ iface }},{{ iface_config.vlan | join(',') }} diff --git a/interface-definitions/service_pppoe-server.xml.in b/interface-definitions/service_pppoe-server.xml.in index 81a4a95e3..955c774e2 100644 --- a/interface-definitions/service_pppoe-server.xml.in +++ b/interface-definitions/service_pppoe-server.xml.in @@ -71,6 +71,12 @@ </leafNode> #include <include/accel-ppp/vlan.xml.i> #include <include/accel-ppp/vlan-mon.xml.i> + <leafNode name="vpp-cp"> + <properties> + <help>Enable PPPoE control-plane integration with VPP</help> + <valueless/> + </properties> + </leafNode> </children> </tagNode> <leafNode name="service-name"> diff --git a/smoketest/scripts/cli/test_service_pppoe-server.py b/smoketest/scripts/cli/test_service_pppoe-server.py index 7a43acfca..609fb7aaa 100755 --- a/smoketest/scripts/cli/test_service_pppoe-server.py +++ b/smoketest/scripts/cli/test_service_pppoe-server.py @@ -211,6 +211,20 @@ class TestServicePPPoEServer(BasicAccelPPPTest.TestCase): self.assertIn('accept-any-service=1', config) self.assertIn('accept-blank-service=1', config) + def test_accel_vpp_cp(self): + interface_vpp = f'{interface},vpp-cp=true' + + self.basic_config() + self.set(['interface', interface, 'vpp-cp']) + self.cli_commit() + + # Validate configuration values + conf = ConfigParser(allow_no_value=True, delimiters='=') + conf.read(self._config_file) + + # Validate configuration + self.assertEqual(conf['pppoe']['interface'], interface_vpp) + if __name__ == '__main__': unittest.main(verbosity=2) |
