diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-02 11:42:17 +0200 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-02 19:27:55 +0200 |
| commit | 99f617c88e57453315ee97cba88d3de1a24a5f01 (patch) | |
| tree | 9101e996fd134a83cb2708e104bcdd7a85caa197 /src | |
| parent | c5c5021aed8ac1baaaf0896193e1c89f125c2103 (diff) | |
| download | vyos-1x-99f617c88e57453315ee97cba88d3de1a24a5f01.tar.gz vyos-1x-99f617c88e57453315ee97cba88d3de1a24a5f01.zip | |
vpp: T8327: Remove support for GRE "point-to-multipoint" mode
Disabled "point-to-multipoint" mode for GRE interfaces, along with related "mode" node.
This mode relies on the 'teib' feature, which is not implemented yet.
Diffstat (limited to 'src')
| -rw-r--r-- | src/conf_mode/vpp_interfaces_gre.py | 47 | ||||
| -rw-r--r-- | src/migration-scripts/vpp/5-to-6 | 8 |
2 files changed, 31 insertions, 24 deletions
diff --git a/src/conf_mode/vpp_interfaces_gre.py b/src/conf_mode/vpp_interfaces_gre.py index de3ab2d39..453845bcf 100644 --- a/src/conf_mode/vpp_interfaces_gre.py +++ b/src/conf_mode/vpp_interfaces_gre.py @@ -106,11 +106,11 @@ def verify(config): if not is_systemd_service_active('vpp.service'): raise ConfigError( - 'Cannot configure VPP bonding interface: vpp.service is not running' + 'Cannot configure VPP GRE interface: vpp.service is not running' ) # source-address and remote are mandatory options - required_keys = {'source_address', 'remote', 'mode', 'tunnel_type'} + required_keys = {'source_address', 'remote', 'tunnel_type'} if not all(key in config for key in required_keys): missing_keys = required_keys - set(config.keys()) raise ConfigError( @@ -122,27 +122,28 @@ def verify(config): if config.get('source_address') == config.get('remote'): raise ConfigError('Remote address must not be the same as source address') - # check multipoint mode - if config.get('mode') == 'point-to-multipoint': - # For multipoint mode, remote IP must be 0.0.0.0 - if config.get('remote') != '0.0.0.0': - raise ConfigError('For point-to-multipoint mode, remote must be 0.0.0.0') - - # Only one multipoint GRE tunnel is allowed from the same source address - # set interfaces vpp gre vppgre0 mode 'point-to-multipoint' - # set interfaces vpp gre vppgre0 remote '0.0.0.0' - # set interfaces vpp gre vppgre0 source-address '192.0.2.1' - # set interfaces vpp gre vppgre1 mode 'point-to-multipoint' - # set interfaces vpp gre vppgre1 remote '0.0.0.0' - # set interfaces vpp gre vppgre1 source-address '192.0.2.1' - for other_iface, other_iface_config in config['gre_interfaces'].items(): - if other_iface == config['ifname']: - continue - if other_iface_config['mode'] == 'point-to-multipoint': - if config['source_address'] == other_iface_config.get('source_address'): - raise ConfigError( - 'Only one multipoint GRE tunnel is allowed from the same source address' - ) + # Disable checks as point-to-multipoint mode does not work without 'teib' feature that is not implemented yet + # # check multipoint mode + # if config.get('mode') == 'point-to-multipoint': + # # For multipoint mode, remote IP must be 0.0.0.0 + # if config.get('remote') != '0.0.0.0': + # raise ConfigError('For point-to-multipoint mode, remote must be 0.0.0.0') + # + # # Only one multipoint GRE tunnel is allowed from the same source address + # # set interfaces vpp gre vppgre0 mode 'point-to-multipoint' + # # set interfaces vpp gre vppgre0 remote '0.0.0.0' + # # set interfaces vpp gre vppgre0 source-address '192.0.2.1' + # # set interfaces vpp gre vppgre1 mode 'point-to-multipoint' + # # set interfaces vpp gre vppgre1 remote '0.0.0.0' + # # set interfaces vpp gre vppgre1 source-address '192.0.2.1' + # for other_iface, other_iface_config in config['gre_interfaces'].items(): + # if other_iface == config['ifname']: + # continue + # if other_iface_config['mode'] == 'point-to-multipoint': + # if config['source_address'] == other_iface_config.get('source_address'): + # raise ConfigError( + # 'Only one multipoint GRE tunnel is allowed from the same source address' + # ) def generate(config): diff --git a/src/migration-scripts/vpp/5-to-6 b/src/migration-scripts/vpp/5-to-6 index ed043de03..03c20d970 100644 --- a/src/migration-scripts/vpp/5-to-6 +++ b/src/migration-scripts/vpp/5-to-6 @@ -45,7 +45,7 @@ # # Migrate loopback interface from vpp section to 'interfaces vpp loopback' (T8324) # -# Migrate gre interface to 'interfaces vpp gre' (T8325) +# Migrate gre interface to 'interfaces vpp gre', remove interfaces with mode "point-to-multipoint" (T8325) # from vyos.configtree import ConfigTree @@ -476,6 +476,12 @@ def _migrate_vpp_gre_interface(config: ConfigTree) -> None: config.set(new_base) for ifname in config.list_nodes(base): + if config.exists(base + [ifname, 'mode']): + if config.return_value(base + [ifname, 'mode']) == 'point-to-multipoint': + config.delete(base + [ifname]) + continue + config.delete(base + [ifname, 'mode']) + _migrate_interface(config, 'gre', ifname) _migrate_members_bridge(config, ifname) |
