|
1 |
| -{# only IPv4 decapsulation is supported #} |
| 1 | +{% set ipv4_addresses = [] %} |
| 2 | +{% set ipv6_addresses = [] %} |
2 | 3 | {% set ipv4_loopback_addresses = [] %}
|
| 4 | +{% set ipv6_loopback_addresses = [] %} |
3 | 5 | {% for (name, prefix) in LOOPBACK_INTERFACE %}
|
4 | 6 | {%- if prefix | ipv4 and name == 'Loopback0' %}
|
| 7 | + {%- set ipv4_addresses = ipv4_addresses.append(prefix) %} |
5 | 8 | {%- set ipv4_loopback_addresses = ipv4_loopback_addresses.append(prefix) %}
|
6 | 9 | {%- 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 %} |
7 | 38 | {% endfor %}
|
8 | 39 | [
|
| 40 | +{% if ipv4_loopback_addresses %} |
9 | 41 | {
|
10 | 42 | "TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
|
11 | 43 | "tunnel_type":"IPINIP",
|
12 | 44 | "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 %}", |
14 | 66 | {% if "mlnx" in DEVICE_METADATA.localhost.platform %}
|
15 | 67 | "dscp_mode":"uniform",
|
16 | 68 | "ecn_mode":"standard",
|
|
22 | 74 | },
|
23 | 75 | "OP": "SET"
|
24 | 76 | }
|
| 77 | +{% endif %} |
25 | 78 | ]
|
0 commit comments