Skip to content

Commit 36ca171

Browse files
authored
[ipinip config] Add v6 ip and peering ip besides currect v4 loopback (#2145)
[ipinip config] Add v6 ip and peering ip besides currect v4 loopback
1 parent a7701fe commit 36ca171

File tree

2 files changed

+68
-3
lines changed

2 files changed

+68
-3
lines changed

dockers/docker-orchagent/ipinip.json.j2

+55-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,68 @@
1-
{# only IPv4 decapsulation is supported #}
1+
{% set ipv4_addresses = [] %}
2+
{% set ipv6_addresses = [] %}
23
{% set ipv4_loopback_addresses = [] %}
4+
{% set ipv6_loopback_addresses = [] %}
35
{% for (name, prefix) in LOOPBACK_INTERFACE %}
46
{%- if prefix | ipv4 and name == 'Loopback0' %}
7+
{%- set ipv4_addresses = ipv4_addresses.append(prefix) %}
58
{%- set ipv4_loopback_addresses = ipv4_loopback_addresses.append(prefix) %}
69
{%- endif %}
10+
{%- if prefix | ipv6 and name == 'Loopback0' %}
11+
{%- set ipv6_addresses = ipv6_addresses.append(prefix) %}
12+
{%- set ipv6_loopback_addresses = ipv6_loopback_addresses.append(prefix) %}
13+
{%- endif %}
14+
{% endfor %}
15+
{% for (name, prefix) in INTERFACE %}
16+
{%- if prefix | ipv4 %}
17+
{%- set ipv4_addresses = ipv4_addresses.append(prefix) %}
18+
{%- endif %}
19+
{%- if prefix | ipv6 %}
20+
{%- set ipv6_addresses = ipv6_addresses.append(prefix) %}
21+
{%- endif %}
22+
{% endfor %}
23+
{% for (name, prefix) in PORTCHANNEL_INTERFACE %}
24+
{%- if prefix | ipv4 %}
25+
{%- set ipv4_addresses = ipv4_addresses.append(prefix) %}
26+
{%- endif %}
27+
{%- if prefix | ipv6 %}
28+
{%- set ipv6_addresses = ipv6_addresses.append(prefix) %}
29+
{%- endif %}
30+
{% endfor %}
31+
{% for (name, prefix) in VLAN_INTERFACE %}
32+
{%- if prefix | ipv4 %}
33+
{%- set ipv4_addresses = ipv4_addresses.append(prefix) %}
34+
{%- endif %}
35+
{%- if prefix | ipv6 %}
36+
{%- set ipv6_addresses = ipv6_addresses.append(prefix) %}
37+
{%- endif %}
738
{% endfor %}
839
[
40+
{% if ipv4_loopback_addresses %}
941
{
1042
"TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
1143
"tunnel_type":"IPINIP",
1244
"src_ip":"{{ ipv4_loopback_addresses | first | ip }}",
13-
"dst_ip":"{% for prefix in ipv4_loopback_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
45+
"dst_ip":"{% for prefix in ipv4_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
46+
{% if "mlnx" in DEVICE_METADATA.localhost.platform %}
47+
"dscp_mode":"uniform",
48+
"ecn_mode":"standard",
49+
{% else %}
50+
"dscp_mode":"pipe",
51+
"ecn_mode":"copy_from_outer",
52+
{% endif %}
53+
"ttl_mode":"pipe"
54+
},
55+
"OP": "SET"
56+
}
57+
{% endif %}
58+
{% if ipv4_loopback_addresses and ipv6_loopback_addresses %} ,
59+
{% endif %}
60+
{% if ipv6_loopback_addresses %}
61+
{
62+
"TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : {
63+
"tunnel_type":"IPINIP",
64+
"src_ip":"{{ ipv6_loopback_addresses | first | ip }}",
65+
"dst_ip":"{% for prefix in ipv6_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
1466
{% if "mlnx" in DEVICE_METADATA.localhost.platform %}
1567
"dscp_mode":"uniform",
1668
"ecn_mode":"standard",
@@ -22,4 +74,5 @@
2274
},
2375
"OP": "SET"
2476
}
77+
{% endif %}
2578
]

src/sonic-config-engine/tests/sample_output/ipinip.json

+13-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,19 @@
33
"TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
44
"tunnel_type":"IPINIP",
55
"src_ip":"10.1.0.32",
6-
"dst_ip":"10.1.0.32",
6+
"dst_ip":"10.1.0.32,10.0.0.56,10.0.0.58,10.0.0.60,10.0.0.62,192.168.0.1",
7+
"dscp_mode":"pipe",
8+
"ecn_mode":"copy_from_outer",
9+
"ttl_mode":"pipe"
10+
},
11+
"OP": "SET"
12+
}
13+
,
14+
{
15+
"TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : {
16+
"tunnel_type":"IPINIP",
17+
"src_ip":"fc00:1::32",
18+
"dst_ip":"fc00:1::32,fc00::71,fc00::75,fc00::79,fc00::7d",
719
"dscp_mode":"pipe",
820
"ecn_mode":"copy_from_outer",
921
"ttl_mode":"pipe"

0 commit comments

Comments
 (0)