[ipdecap]: Setup decap destination IP based on platform (#2191)

This commit is contained in:
Prince Sunny 2018-10-25 13:13:26 -07:00 committed by lguohan
parent c3c6de4e5f
commit b954fa9c13

View File

@ -1,11 +1,15 @@
{% set ipv4_addresses = [] %} {% set ipv4_addresses = [] %}
{% set ipv6_addresses = [] %} {% set ipv6_addresses = [] %}
{% set ipv4_loopback_addresses = [] %}
{% set ipv6_loopback_addresses = [] %}
{% for (name, prefix) in LOOPBACK_INTERFACE %} {% for (name, prefix) in LOOPBACK_INTERFACE %}
{%- if prefix | ipv4 and name == 'Loopback0' %} {%- if prefix | ipv4 and name == 'Loopback0' %}
{%- set ipv4_addresses = ipv4_addresses.append(prefix) %} {%- set ipv4_addresses = ipv4_addresses.append(prefix) %}
{%- set ipv4_loopback_addresses = ipv4_loopback_addresses.append(prefix) %}
{%- endif %} {%- endif %}
{%- if prefix | ipv6 and name == 'Loopback0' %} {%- if prefix | ipv6 and name == 'Loopback0' %}
{%- set ipv6_addresses = ipv6_addresses.append(prefix) %} {%- set ipv6_addresses = ipv6_addresses.append(prefix) %}
{%- set ipv6_loopback_addresses = ipv6_loopback_addresses.append(prefix) %}
{%- endif %} {%- endif %}
{% endfor %} {% endfor %}
{% for (name, prefix) in INTERFACE %} {% for (name, prefix) in INTERFACE %}
@ -33,15 +37,16 @@
{%- endif %} {%- endif %}
{% endfor %} {% endfor %}
[ [
{% if ipv4_addresses %} {% if ipv4_loopback_addresses %}
{ {
"TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : { "TUNNEL_DECAP_TABLE:IPINIP_TUNNEL" : {
"tunnel_type":"IPINIP", "tunnel_type":"IPINIP",
"dst_ip":"{% for prefix in ipv4_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
{% if "mlnx" in DEVICE_METADATA.localhost.platform %} {% if "mlnx" in DEVICE_METADATA.localhost.platform %}
"dst_ip":"{% for prefix in ipv4_loopback_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %},
"dscp_mode":"uniform", "dscp_mode":"uniform",
"ecn_mode":"standard", "ecn_mode":"standard",
{% else %} {% else %}
"dst_ip":"{% for prefix in ipv4_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
"dscp_mode":"pipe", "dscp_mode":"pipe",
"ecn_mode":"copy_from_outer", "ecn_mode":"copy_from_outer",
{% endif %} {% endif %}
@ -50,17 +55,18 @@
"OP": "SET" "OP": "SET"
} }
{% endif %} {% endif %}
{% if ipv4_addresses and ipv6_addresses %} , {% if ipv4_loopback_addresses and ipv6_loopback_addresses %} ,
{% endif %} {% endif %}
{% if ipv6_addresses %} {% if ipv6_loopback_addresses %}
{ {
"TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : { "TUNNEL_DECAP_TABLE:IPINIP_V6_TUNNEL" : {
"tunnel_type":"IPINIP", "tunnel_type":"IPINIP",
"dst_ip":"{% for prefix in ipv6_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
{% if "mlnx" in DEVICE_METADATA.localhost.platform %} {% if "mlnx" in DEVICE_METADATA.localhost.platform %}
"dst_ip":"{% for prefix in ipv6_loopback_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %},
"dscp_mode":"uniform", "dscp_mode":"uniform",
"ecn_mode":"standard", "ecn_mode":"standard",
{% else %} {% else %}
"dst_ip":"{% for prefix in ipv6_addresses %}{{ prefix | ip }}{% if not loop.last %},{% endif %}{% endfor %}",
"dscp_mode":"pipe", "dscp_mode":"pipe",
"ecn_mode":"copy_from_outer", "ecn_mode":"copy_from_outer",
{% endif %} {% endif %}