summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-03-02 11:42:17 +0200
committerNataliia Solomko <natalirs1985@gmail.com>2026-03-02 19:27:55 +0200
commit99f617c88e57453315ee97cba88d3de1a24a5f01 (patch)
tree9101e996fd134a83cb2708e104bcdd7a85caa197 /src
parentc5c5021aed8ac1baaaf0896193e1c89f125c2103 (diff)
downloadvyos-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.py47
-rw-r--r--src/migration-scripts/vpp/5-to-68
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)