summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-11-27 10:32:01 +0100
committerChristian Poessinger <christian@poessinger.com>2021-11-27 10:32:01 +0100
commit1c15e9de76f81383a32e60d2af54444dbb0474a1 (patch)
tree5f1a03db605bae2b1d22e49137c8afb94cf964cd /src
parent09064990b9e3ed0a19c1ca4257b385f92d25af2a (diff)
downloadvyos-1x-1c15e9de76f81383a32e60d2af54444dbb0474a1.tar.gz
vyos-1x-1c15e9de76f81383a32e60d2af54444dbb0474a1.zip
ospf: T3753: adjust to CLI options new in FRR 8.0
FRR 7.5 router ospf passive-interface default no passive-interface eth0.202 Changed int FRR 8 to interface eth0.202 no ip ospf passive ! router ospf ospf router-id 172.18.254.202 log-adjacency-changes detail passive-interface default
Diffstat (limited to 'src')
-rwxr-xr-xsrc/migration-scripts/ospf/0-to-133
1 files changed, 31 insertions, 2 deletions
diff --git a/src/migration-scripts/ospf/0-to-1 b/src/migration-scripts/ospf/0-to-1
index ff3a84b2c..678569d9e 100755
--- a/src/migration-scripts/ospf/0-to-1
+++ b/src/migration-scripts/ospf/0-to-1
@@ -19,6 +19,24 @@
from sys import argv
from vyos.configtree import ConfigTree
+def ospf_passive_migration(config, ospf_base):
+ if config.exists(ospf_base):
+ if config.exists(ospf_base + ['passive-interface']):
+ default = False
+ for interface in config.return_values(ospf_base + ['passive-interface']):
+ if interface == 'default':
+ default = True
+ continue
+ config.set(ospf_base + ['interface', interface, 'passive'])
+
+ config.delete(ospf_base + ['passive-interface'])
+ config.set(ospf_base + ['passive-interface'], value='default')
+
+ if config.exists(ospf_base + ['passive-interface-exclude']):
+ for interface in config.return_values(ospf_base + ['passive-interface-exclude']):
+ config.set(ospf_base + ['interface', interface, 'passive', 'disable'])
+ config.delete(ospf_base + ['passive-interface-exclude'])
+
if (len(argv) < 1):
print("Must specify file name!")
exit(1)
@@ -28,9 +46,9 @@ file_name = argv[1]
with open(file_name, 'r') as f:
config_file = f.read()
-ospfv3_base = ['protocols', 'ospfv3']
config = ConfigTree(config_file)
+ospfv3_base = ['protocols', 'ospfv3']
if config.exists(ospfv3_base):
area_base = ospfv3_base + ['area']
if config.exists(area_base):
@@ -39,11 +57,22 @@ if config.exists(ospfv3_base):
continue
for interface in config.return_values(area_base + [area, 'interface']):
- config.set(ospfv3_base + ['interface', interface, 'area', area])
+ config.set(ospfv3_base + ['interface', interface, 'area'], value=area)
config.set_tag(ospfv3_base + ['interface'])
config.delete(area_base + [area, 'interface'])
+# Migrate OSPF syntax in default VRF
+ospf_base = ['protocols', 'ospf']
+ospf_passive_migration(config, ospf_base)
+
+vrf_base = ['vrf', 'name']
+if config.exists(vrf_base):
+ for vrf in config.list_nodes(vrf_base):
+ vrf_ospf_base = vrf_base + [vrf, 'protocols', 'ospf']
+ if config.exists(vrf_ospf_base):
+ ospf_passive_migration(config, vrf_ospf_base)
+
try:
with open(file_name, 'w') as f:
f.write(config.to_string())