Page MenuHomeVyOS Platform

No OneTemporary

Size
9 KB
Referenced Files
None
Subscribers
None
diff --git a/smoketest/configs/ospf-small b/smoketest/configs/ospf-small
index b3002b1af..c55627b77 100644
--- a/smoketest/configs/ospf-small
+++ b/smoketest/configs/ospf-small
@@ -1,161 +1,192 @@
interfaces {
dummy dum0 {
- address 172.18.254.201/32
+ address 172.18.254.200/32
}
ethernet eth0 {
duplex auto
smp-affinity auto
speed auto
vif 201 {
- address 172.18.201.10/24
+ address 172.18.201.9/24
+ ip {
+ ospf {
+ authentication {
+ md5 {
+ key-id 10 {
+ md5-key OSPFVyOSNET
+ }
+ }
+ }
+ dead-interval 40
+ hello-interval 10
+ priority 1
+ retransmit-interval 5
+ transmit-delay 1
+ }
+ }
+ ipv6 {
+ ospfv3 {
+ bfd
+ cost 40
+ }
+ }
+ }
+ vif 202 {
+ address 172.18.202.9/24
+ ip {
+ ospf {
+ authentication {
+ md5 {
+ key-id 10 {
+ md5-key OSPFVyOSNET
+ }
+ }
+ }
+ dead-interval 40
+ hello-interval 10
+ priority 1
+ retransmit-interval 5
+ transmit-delay 1
+ }
+ }
+ ipv6 {
+ ospfv3 {
+ bfd
+ cost 40
+ }
+ }
+ }
+ vif 203 {
+ address 172.18.203.9/24
ip {
ospf {
authentication {
md5 {
key-id 10 {
md5-key OSPFVyOSNET
}
}
}
dead-interval 40
hello-interval 10
priority 1
retransmit-interval 5
transmit-delay 1
}
}
ipv6 {
ospfv3 {
bfd
cost 40
}
}
}
}
ethernet eth1 {
duplex auto
smp-affinity auto
speed auto
ipv6 {
ospfv3 {
bfd
cost 60
mtu-ignore
network broadcast
priority 20
}
}
}
}
protocols {
ospf {
area 0 {
network 172.18.201.0/24
- network 172.18.254.201/32
+ network 172.18.202.0/24
+ network 172.18.203.0/24
+ network 172.18.254.200/32
}
log-adjacency-changes {
}
parameters {
abr-type cisco
- router-id 172.18.254.201
+ router-id 172.18.254.200
}
passive-interface default
passive-interface-exclude eth0.201
+ passive-interface-exclude eth0.202
+ passive-interface-exclude eth0.203
}
ospfv3 {
area 0.0.0.0 {
- interface eth0
+ interface eth0.201
+ interface eth0.202
+ interface eth0.203
interface eth1
- interface eth2
- }
- }
- static {
- route 0.0.0.0/0 {
- next-hop 172.18.201.254 {
- distance 10
- }
}
}
}
service {
- lldp {
- interface all {
- }
- snmp {
- enable
- }
- }
- snmp {
- community public {
- authorization ro
- network 172.16.100.0/24
- }
- contact "VyOS maintainers and contributors <maintainers@vyos.io>"
- location "Jenkins"
- }
ssh {
disable-host-validation
port 22
}
}
system {
config-management {
commit-revisions 200
}
console {
device ttyS0 {
speed 115200
}
}
domain-name vyos.net
host-name vyos
login {
user vyos {
authentication {
encrypted-password $6$2Ta6TWHd/U$NmrX0x9kexCimeOcYK1MfhMpITF9ELxHcaBU/znBq.X2ukQOj61fVI2UYP/xBzP4QtiTcdkgs7WOQMHWsRymO/
plaintext-password ""
}
level admin
}
}
name-server 172.16.254.30
ntp {
- server 0.pool.ntp.org {
- }
- server 1.pool.ntp.org {
+ server time1.vyos.net {
}
- server 2.pool.ntp.org {
+ server time2.vyos.net {
}
}
sysctl {
all net.ipv4.conf.eth0.tag {
value 1
}
all net.ipv4.conf.eth1.tag {
value 1
}
custom net.mpls.default_ttl {
value 10
}
custom net.mpls.ip_ttl_propagate {
value 0
}
net.ipv4.igmp_max_memberships 5
net.ipv4.ipfrag_time 4
}
syslog {
global {
facility all {
level info
}
facility protocols {
level debug
}
}
}
time-zone Europe/Berlin
}
/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "broadcast-relay@1:cluster@1:config-management@1:conntrack-sync@1:conntrack@1:dhcp-relay@2:dhcp-server@5:dns-forwarding@1:firewall@5:ipsec@5:l2tp@1:mdns@1:nat@4:ntp@1:pptp@1:qos@1:quagga@6:snmp@1:ssh@1:system@9:vrrp@2:wanloadbalance@3:webgui@1:webproxy@1:webproxy@2:zone-policy@1" === */
/* Release version: 1.2.6 */
diff --git a/src/migration-scripts/ospf/0-to-1 b/src/migration-scripts/ospf/0-to-1
index 8f02acada..a6cb9feb8 100755
--- a/src/migration-scripts/ospf/0-to-1
+++ b/src/migration-scripts/ospf/0-to-1
@@ -1,81 +1,83 @@
#!/usr/bin/env python3
#
-# Copyright (C) 2021 VyOS maintainers and contributors
+# Copyright (C) 2021-2024 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# T3753: upgrade to FRR8 and move CLI options to better fit with the new FRR CLI
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.set_tag(ospf_base + ['interface'])
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.set_tag(ospf_base + ['interface'])
config.delete(ospf_base + ['passive-interface-exclude'])
if len(argv) < 2:
print("Must specify file name!")
exit(1)
file_name = argv[1]
with open(file_name, 'r') as f:
config_file = f.read()
config = ConfigTree(config_file)
ospfv3_base = ['protocols', 'ospfv3']
if config.exists(ospfv3_base):
area_base = ospfv3_base + ['area']
if config.exists(area_base):
for area in config.list_nodes(area_base):
if not config.exists(area_base + [area, 'interface']):
continue
for interface in config.return_values(area_base + [area, 'interface']):
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())
except OSError as e:
print(f'Failed to save the modified config: {e}')
exit(1)

File Metadata

Mime Type
text/x-diff
Expires
Sat, Sep 26, 12:22 PM (1 d, 22 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4285124
Default Alt Text
(9 KB)

Event Timeline