Skip to content

Commit e99086c

Browse files
kannankvspphuchar
authored andcommitted
modified down rules to pre-down rules to ensure that default route is… (sonic-net#3853)
* modified down rules to pre-down rules to ensure that default route is deleted just before interface is made down
1 parent d4f127a commit e99086c

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

files/image_config/interfaces/interfaces.j2

+12-12
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55
# file: /etc/network/interfaces
66
#
77
{% endblock banner %}
8+
{% block mgmt_vrf %}
89
{% if (MGMT_VRF_CONFIG) and (MGMT_VRF_CONFIG['vrf_global']['mgmtVrfEnabled'] == "true") %}
910
auto mgmt
1011
iface mgmt
1112
vrf-table 5000
12-
{% endif %}
13-
{% block loopback %}
14-
# The loopback network interface
15-
auto lo
16-
iface lo inet loopback
17-
{% if (MGMT_VRF_CONFIG) and (MGMT_VRF_CONFIG['vrf_global']['mgmtVrfEnabled'] == "true") %}
1813
# The loopback network interface for mgmt VRF that is required for applications like NTP
1914
up ip link add lo-m type dummy
15+
up ip link set dev lo-m master mgmt
2016
up ip addr add 127.0.0.1/8 dev lo-m
2117
up ip link set lo-m up
22-
up ip link set dev lo-m master mgmt
23-
down ip link delete dev lo-m
18+
down ip link delete dev lo-m
2419
{% endif %}
20+
{% endblock mgmt_vrf %}
21+
{% block loopback %}
22+
# The loopback network interface
23+
auto lo
24+
iface lo inet loopback
2525
{% endblock loopback %}
2626
{% block mgmt_interface %}
2727

@@ -50,14 +50,14 @@ iface eth0 {{ 'inet' if prefix | ipv4 else 'inet6' }} static
5050
up ip rule add to {{ route }} table {{ vrf_table }}
5151
{% endfor %}
5252
# management port down rules
53-
down ip {{ '-4' if prefix | ipv4 else '-6' }} route delete default via {{ MGMT_INTERFACE[(name, prefix)]['gwaddr'] }} dev eth0 table {{ vrf_table }}
54-
down ip {{ '-4' if prefix | ipv4 else '-6' }} route delete {{ prefix | network }}/{{ prefix | prefixlen }} dev eth0 table {{ vrf_table }}
55-
down ip {{ '-4' if prefix | ipv4 else '-6' }} rule delete from {{ prefix | ip }}/{{ '32' if prefix | ipv4 else '128' }} table {{ vrf_table }}
53+
pre-down ip {{ '-4' if prefix | ipv4 else '-6' }} route delete default via {{ MGMT_INTERFACE[(name, prefix)]['gwaddr'] }} dev eth0 table {{ vrf_table }}
54+
pre-down ip {{ '-4' if prefix | ipv4 else '-6' }} route delete {{ prefix | network }}/{{ prefix | prefixlen }} dev eth0 table {{ vrf_table }}
55+
pre-down ip {{ '-4' if prefix | ipv4 else '-6' }} rule delete from {{ prefix | ip }}/{{ '32' if prefix | ipv4 else '128' }} table {{ vrf_table }}
5656
{% if (MGMT_VRF_CONFIG) and (MGMT_VRF_CONFIG['vrf_global']['mgmtVrfEnabled'] == "true") %}
5757
down cgdelete -g l3mdev:mgmt
5858
{% endif %}
5959
{% for route in MGMT_INTERFACE[(name, prefix)]['forced_mgmt_routes'] %}
60-
down ip rule delete to {{ route }} table {{ vrf_table }}
60+
pre-down ip rule delete to {{ route }} table {{ vrf_table }}
6161
{% endfor %}
6262
{# TODO: COPP policy type rules #}
6363
{% endfor %}

src/sonic-config-engine/tests/sample_output/interfaces

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ iface eth0 inet static
1818
up ip -4 route add 10.0.0.0/24 dev eth0 table default
1919
up ip -4 rule add from 10.0.0.100/32 table default
2020
# management port down rules
21-
down ip -4 route delete default via 10.0.0.1 dev eth0 table default
22-
down ip -4 route delete 10.0.0.0/24 dev eth0 table default
23-
down ip -4 rule delete from 10.0.0.100/32 table default
21+
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table default
22+
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table default
23+
pre-down ip -4 rule delete from 10.0.0.100/32 table default
2424
iface eth0 inet6 static
2525
address 2603:10e2:0:2902::8
2626
netmask 64
@@ -30,9 +30,9 @@ iface eth0 inet6 static
3030
up ip -6 route add 2603:10e2:0:2902::/64 dev eth0 table default
3131
up ip -6 rule add from 2603:10e2:0:2902::8/128 table default
3232
# management port down rules
33-
down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table default
34-
down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table default
35-
down ip -6 rule delete from 2603:10e2:0:2902::8/128 table default
33+
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table default
34+
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table default
35+
pre-down ip -6 rule delete from 2603:10e2:0:2902::8/128 table default
3636
#
3737
source /etc/network/interfaces.d/*
3838
#

src/sonic-config-engine/tests/sample_output/mvrf_interfaces

+11-11
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
auto mgmt
77
iface mgmt
88
vrf-table 5000
9-
# The loopback network interface
10-
auto lo
11-
iface lo inet loopback
129
# The loopback network interface for mgmt VRF that is required for applications like NTP
1310
up ip link add lo-m type dummy
11+
up ip link set dev lo-m master mgmt
1412
up ip addr add 127.0.0.1/8 dev lo-m
1513
up ip link set lo-m up
16-
up ip link set dev lo-m master mgmt
17-
down ip link delete dev lo-m
14+
down ip link delete dev lo-m
15+
# The loopback network interface
16+
auto lo
17+
iface lo inet loopback
1818

1919
# The management network interface
2020
auto eth0
@@ -30,9 +30,9 @@ iface eth0 inet static
3030
up cgcreate -g l3mdev:mgmt
3131
up cgset -r l3mdev.master-device=mgmt mgmt
3232
# management port down rules
33-
down ip -4 route delete default via 10.0.0.1 dev eth0 table 5000
34-
down ip -4 route delete 10.0.0.0/24 dev eth0 table 5000
35-
down ip -4 rule delete from 10.0.0.100/32 table 5000
33+
pre-down ip -4 route delete default via 10.0.0.1 dev eth0 table 5000
34+
pre-down ip -4 route delete 10.0.0.0/24 dev eth0 table 5000
35+
pre-down ip -4 rule delete from 10.0.0.100/32 table 5000
3636
down cgdelete -g l3mdev:mgmt
3737
iface eth0 inet6 static
3838
address 2603:10e2:0:2902::8
@@ -46,9 +46,9 @@ iface eth0 inet6 static
4646
up cgcreate -g l3mdev:mgmt
4747
up cgset -r l3mdev.master-device=mgmt mgmt
4848
# management port down rules
49-
down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table 5000
50-
down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table 5000
51-
down ip -6 rule delete from 2603:10e2:0:2902::8/128 table 5000
49+
pre-down ip -6 route delete default via 2603:10e2:0:2902::1 dev eth0 table 5000
50+
pre-down ip -6 route delete 2603:10e2:0:2902::/64 dev eth0 table 5000
51+
pre-down ip -6 rule delete from 2603:10e2:0:2902::8/128 table 5000
5252
down cgdelete -g l3mdev:mgmt
5353
#
5454
source /etc/network/interfaces.d/*

0 commit comments

Comments
 (0)