Improvement in fabric.p4 and bng.p4
- fabric.p4 now supports double tagged hosts
- bng.p4 now only manages PPPoE termination
- bng_ingress moved at the end of the fabric pipeline
Change-Id: Iff62238fde9ec6ddf7311312a98c041e3ab3aa8d
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index 8ea1cab..bc0e350 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -8,7 +8,10 @@
["tmp", 32, false],
["tmp_1", 32, false],
["egress_next_tmp", 1, false],
- ["fabric_metadata_t.eth_type", 16, false],
+ ["fabric_metadata_t.last_eth_type", 16, false],
+ ["fabric_metadata_t.is_ipv4", 1, false],
+ ["fabric_metadata_t.is_ipv6", 1, false],
+ ["fabric_metadata_t.is_mpls", 1, false],
["fabric_metadata_t.ip_eth_type", 16, false],
["fabric_metadata_t.vlan_id", 12, false],
["fabric_metadata_t.vlan_pri", 3, false],
@@ -23,7 +26,8 @@
["fabric_metadata_t.is_controller_packet_out", 1, false],
["fabric_metadata_t.ip_proto", 8, false],
["fabric_metadata_t.l4_sport", 16, false],
- ["fabric_metadata_t.l4_dport", 16, false]
+ ["fabric_metadata_t.l4_dport", 16, false],
+ ["_padding_0", 5, false]
]
},
{
@@ -347,7 +351,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
},
{
"type" : "field",
@@ -387,7 +391,7 @@
"type" : "hexstr",
"value" : "0x0800",
"mask" : null,
- "next_state" : "parse_ipv4"
+ "next_state" : "pre_parse_ipv4"
},
{
"value" : "default",
@@ -421,7 +425,7 @@
"type" : "hexstr",
"value" : "0x0800",
"mask" : null,
- "next_state" : "parse_ipv4"
+ "next_state" : "pre_parse_ipv4"
},
{
"type" : "hexstr",
@@ -436,6 +440,18 @@
"next_state" : "parse_inner_vlan_tag"
},
{
+ "type" : "hexstr",
+ "value" : "0x88a8",
+ "mask" : null,
+ "next_state" : "parse_inner_vlan_tag"
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x9100",
+ "mask" : null,
+ "next_state" : "parse_inner_vlan_tag"
+ },
+ {
"value" : "default",
"mask" : null,
"next_state" : null
@@ -467,7 +483,7 @@
"type" : "hexstr",
"value" : "0x0800",
"mask" : null,
- "next_state" : "parse_ipv4"
+ "next_state" : "pre_parse_ipv4"
},
{
"type" : "hexstr",
@@ -505,6 +521,29 @@
"parameters" : [
{
"type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.is_mpls"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "op" : "set"
+ },
+ {
+ "parameters" : [
+ {
+ "type" : "field",
"value" : ["scalars", "fabric_metadata_t.mpls_label"]
},
{
@@ -562,12 +601,49 @@
]
},
{
- "name" : "parse_ipv4",
+ "name" : "pre_parse_ipv4",
"id" : 6,
"parser_ops" : [
{
"parameters" : [
{
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.is_ipv4"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "op" : "set"
+ }
+ ],
+ "transitions" : [
+ {
+ "value" : "default",
+ "mask" : null,
+ "next_state" : "parse_ipv4"
+ }
+ ],
+ "transition_key" : []
+ },
+ {
+ "name" : "parse_ipv4",
+ "id" : 7,
+ "parser_ops" : [
+ {
+ "parameters" : [
+ {
"type" : "regular",
"value" : "ipv4"
}
@@ -635,7 +711,7 @@
},
{
"name" : "parse_tcp",
- "id" : 7,
+ "id" : 8,
"parser_ops" : [
{
"parameters" : [
@@ -684,7 +760,7 @@
},
{
"name" : "parse_udp",
- "id" : 8,
+ "id" : 9,
"parser_ops" : [
{
"parameters" : [
@@ -738,7 +814,7 @@
},
{
"name" : "parse_icmp",
- "id" : 9,
+ "id" : 10,
"parser_ops" : [
{
"parameters" : [
@@ -769,7 +845,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/parser.p4",
- "line" : 261,
+ "line" : 276,
"column" : 8,
"source_fragment" : "FabricDeparser"
},
@@ -797,7 +873,7 @@
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 80,
+ "line" : 83,
"column" : 50,
"source_fragment" : "fwd_classifier_counter"
}
@@ -869,7 +945,7 @@
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 92,
+ "line" : 103,
"column" : 50,
"source_fragment" : "xconnect_counter"
}
@@ -881,7 +957,7 @@
"binding" : "FabricIngress.next.hashed",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 166,
+ "line" : 178,
"column" : 50,
"source_fragment" : "hashed_counter"
}
@@ -893,7 +969,7 @@
"binding" : "FabricIngress.next.multicast",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 210,
+ "line" : 222,
"column" : 50,
"source_fragment" : "multicast_counter"
}
@@ -929,7 +1005,7 @@
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 283,
+ "line" : 309,
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
@@ -1230,7 +1306,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 83,
+ "line" : 86,
"column" : 8,
"source_fragment" : "fabric_metadata.fwd_type = fwd_type"
}
@@ -1588,6 +1664,25 @@
"column" : 5,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x8100"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 107,
+ "column" : 31,
+ "source_fragment" : "0x8100; ..."
+ }
}
]
},
@@ -1615,7 +1710,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 100,
+ "line" : 112,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1854,7 +1949,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 213,
+ "line" : 225,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = group_id"
}
@@ -1883,7 +1978,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 214,
+ "line" : 226,
"column" : 8,
"source_fragment" : "fabric_metadata.is_multicast = true"
}
@@ -1980,25 +2075,6 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
- },
- {
- "type" : "field",
- "value" : ["vlan_tag", "eth_type"]
- }
- ],
- "source_info" : {
- "filename" : "include/control/filtering.p4",
- "line" : 105,
- "column" : 12,
- "source_fragment" : "fabric_metadata.eth_type = hdr.vlan_tag.eth_type"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
"value" : ["scalars", "fabric_metadata_t.vlan_id"]
},
{
@@ -2008,7 +2084,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 106,
+ "line" : 110,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
}
@@ -2027,7 +2103,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 107,
+ "line" : 111,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
}
@@ -2046,7 +2122,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 108,
+ "line" : 112,
"column" : 12,
"source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
}
@@ -2072,7 +2148,7 @@
],
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 115,
+ "line" : 126,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
}
@@ -2089,6 +2165,110 @@
"parameters" : [
{
"type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x8847"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 108,
+ "column" : 31,
+ "source_fragment" : "0x8847; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_3",
+ "id" : 31,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_vlan_tag", "eth_type"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 136,
+ "column" : 20,
+ "source_fragment" : "fabric_metadata.last_eth_type = hdr.inner_vlan_tag.eth_type"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_4",
+ "id" : 32,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+ },
+ {
+ "type" : "field",
+ "value" : ["vlan_tag", "eth_type"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 139,
+ "column" : 20,
+ "source_fragment" : "fabric_metadata.last_eth_type = hdr.vlan_tag.eth_type"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_5",
+ "id" : 33,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+ },
+ {
+ "type" : "field",
+ "value" : ["ethernet", "eth_type"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 141,
+ "column" : 16,
+ "source_fragment" : "fabric_metadata.last_eth_type = hdr.ethernet.eth_type"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_6",
+ "id" : 34,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
"value" : ["scalars", "tmp"]
},
{
@@ -2138,8 +2318,8 @@
]
},
{
- "name" : "act_3",
- "id" : 31,
+ "name" : "act_7",
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -2197,13 +2377,13 @@
},
{
"name" : "nop",
- "id" : 32,
+ "id" : 36,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 33,
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -2216,7 +2396,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 252,
+ "line" : 264,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -2226,7 +2406,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
},
{
"type" : "field",
@@ -2235,16 +2415,16 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 254,
+ "line" : 266,
"column" : 8,
- "source_fragment" : "fabric_metadata.eth_type = fabric_metadata.ip_eth_type"
+ "source_fragment" : "fabric_metadata.last_eth_type = fabric_metadata.ip_eth_type"
}
}
]
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 34,
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -2257,7 +2437,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 259,
+ "line" : 271,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -2276,7 +2456,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 260,
+ "line" : 272,
"column" : 8,
"source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
}
@@ -2295,7 +2475,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 261,
+ "line" : 273,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = 3w0"
}
@@ -2314,7 +2494,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 262,
+ "line" : 274,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -2333,7 +2513,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 263,
+ "line" : 275,
"column" : 8,
"source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
}
@@ -2343,7 +2523,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
},
{
"type" : "hexstr",
@@ -2361,7 +2541,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 35,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -2374,7 +2554,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 271,
+ "line" : 283,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -2393,7 +2573,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 272,
+ "line" : 284,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
}
@@ -2412,7 +2592,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 273,
+ "line" : 285,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
}
@@ -2426,14 +2606,14 @@
},
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 274,
+ "line" : 286,
"column" : 8,
- "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type"
+ "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type"
}
},
{
@@ -2450,7 +2630,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 275,
+ "line" : 287,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
}
@@ -2478,7 +2658,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 36,
+ "id" : 40,
"runtime_data" : [],
"primitives" : [
{
@@ -2490,14 +2670,14 @@
},
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t.eth_type"]
+ "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
}
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 286,
+ "line" : 312,
"column" : 8,
- "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type"
+ "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type"
}
},
{
@@ -2510,7 +2690,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 287,
+ "line" : 313,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -2518,8 +2698,8 @@
]
},
{
- "name" : "act_4",
- "id" : 37,
+ "name" : "act_8",
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -2535,8 +2715,8 @@
]
},
{
- "name" : "act_5",
- "id" : 38,
+ "name" : "act_9",
+ "id" : 42,
"runtime_data" : [],
"primitives" : [
{
@@ -2586,8 +2766,8 @@
]
},
{
- "name" : "act_6",
- "id" : 39,
+ "name" : "act_10",
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -2600,7 +2780,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 308,
+ "line" : 334,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -2608,8 +2788,8 @@
]
},
{
- "name" : "act_7",
- "id" : 40,
+ "name" : "act_11",
+ "id" : 44,
"runtime_data" : [],
"primitives" : [
{
@@ -2638,8 +2818,8 @@
]
},
{
- "name" : "act_8",
- "id" : 41,
+ "name" : "act_12",
+ "id" : 45,
"runtime_data" : [],
"primitives" : [
{
@@ -2668,8 +2848,8 @@
]
},
{
- "name" : "act_9",
- "id" : 42,
+ "name" : "act_13",
+ "id" : 46,
"runtime_data" : [],
"primitives" : [
{
@@ -2682,7 +2862,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 367,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -2690,8 +2870,8 @@
]
},
{
- "name" : "act_10",
- "id" : 43,
+ "name" : "act_14",
+ "id" : 47,
"runtime_data" : [],
"primitives" : [
{
@@ -2731,7 +2911,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 326,
+ "line" : 366,
"column" : 12,
"source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
}
@@ -2739,8 +2919,8 @@
]
},
{
- "name" : "act_11",
- "id" : 44,
+ "name" : "act_15",
+ "id" : 48,
"runtime_data" : [],
"primitives" : [
{
@@ -2753,7 +2933,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 371,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
}
@@ -2761,8 +2941,8 @@
]
},
{
- "name" : "act_12",
- "id" : 45,
+ "name" : "act_16",
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -2802,7 +2982,7 @@
],
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 330,
+ "line" : 370,
"column" : 16,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -2856,9 +3036,9 @@
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 105,
- "column" : 37,
- "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
+ "line" : 110,
+ "column" : 36,
+ "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
},
"key" : [],
"match_type" : "exact",
@@ -2885,7 +3065,7 @@
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 115,
+ "line" : 126,
"column" : 37,
"source_fragment" : "="
},
@@ -2898,9 +3078,9 @@
"direct_meters" : null,
"action_ids" : [29],
"actions" : ["act_1"],
- "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+ "base_default_next" : "node_8",
"next_tables" : {
- "act_1" : "FabricIngress.filtering.ingress_port_vlan"
+ "act_1" : "node_8"
},
"default_entry" : {
"action_id" : 29,
@@ -2910,11 +3090,127 @@
}
},
{
- "name" : "FabricIngress.filtering.ingress_port_vlan",
+ "name" : "tbl_act_2",
"id" : 3,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 51,
+ "line" : 131,
+ "column" : 42,
+ "source_fragment" : "="
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [30],
+ "actions" : ["act_2"],
+ "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+ "next_tables" : {
+ "act_2" : "FabricIngress.filtering.ingress_port_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 30,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_3",
+ "id" : 4,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 136,
+ "column" : 50,
+ "source_fragment" : "="
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [31],
+ "actions" : ["act_3"],
+ "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+ "next_tables" : {
+ "act_3" : "FabricIngress.filtering.ingress_port_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 31,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_4",
+ "id" : 5,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 139,
+ "column" : 50,
+ "source_fragment" : "="
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [32],
+ "actions" : ["act_4"],
+ "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+ "next_tables" : {
+ "act_4" : "FabricIngress.filtering.ingress_port_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 32,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_5",
+ "id" : 6,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 141,
+ "column" : 46,
+ "source_fragment" : "="
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [33],
+ "actions" : ["act_5"],
+ "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+ "next_tables" : {
+ "act_5" : "FabricIngress.filtering.ingress_port_vlan"
+ },
+ "default_entry" : {
+ "action_id" : 33,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.filtering.ingress_port_vlan",
+ "id" : 7,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 53,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -2936,6 +3232,12 @@
"name" : "vlan_id",
"target" : ["vlan_tag", "vlan_id"],
"mask" : null
+ },
+ {
+ "match_type" : "ternary",
+ "name" : "inner_vlan_id",
+ "target" : ["inner_vlan_tag", "vlan_id"],
+ "mask" : null
}
],
"match_type" : "ternary",
@@ -2961,10 +3263,10 @@
},
{
"name" : "FabricIngress.filtering.fwd_classifier",
- "id" : 4,
+ "id" : 8,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 87,
+ "line" : 90,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -2983,8 +3285,20 @@
},
{
"match_type" : "exact",
- "name" : "eth_type",
- "target" : ["scalars", "fabric_metadata_t.eth_type"],
+ "name" : "is_ipv4",
+ "target" : ["scalars", "fabric_metadata_t.is_ipv4"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "is_ipv6",
+ "target" : ["scalars", "fabric_metadata_t.is_ipv6"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "is_mpls",
+ "target" : ["scalars", "fabric_metadata_t.is_mpls"],
"mask" : null
}
],
@@ -2996,9 +3310,9 @@
"direct_meters" : null,
"action_ids" : [10],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
- "base_default_next" : "node_10",
+ "base_default_next" : "node_17",
"next_tables" : {
- "FabricIngress.filtering.set_forwarding_type" : "node_10"
+ "FabricIngress.filtering.set_forwarding_type" : "node_17"
},
"default_entry" : {
"action_id" : 10,
@@ -3009,7 +3323,7 @@
},
{
"name" : "FabricIngress.forwarding.bridging",
- "id" : 5,
+ "id" : 9,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 46,
@@ -3052,7 +3366,7 @@
},
{
"name" : "FabricIngress.forwarding.mpls",
- "id" : 6,
+ "id" : 10,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 71,
@@ -3089,7 +3403,7 @@
},
{
"name" : "FabricIngress.forwarding.routing_v4",
- "id" : 7,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 101,
@@ -3127,7 +3441,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 8,
+ "id" : 12,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 60,
@@ -3180,7 +3494,7 @@
{
"match_type" : "ternary",
"name" : "eth_type",
- "target" : ["scalars", "fabric_metadata_t.eth_type"],
+ "target" : ["scalars", "fabric_metadata_t.last_eth_type"],
"mask" : null
},
{
@@ -3216,13 +3530,13 @@
"direct_meters" : null,
"action_ids" : [15, 16, 17, 18, 19],
"actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
- "base_default_next" : "node_18",
+ "base_default_next" : "node_25",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_18",
- "FabricIngress.acl.punt_to_cpu" : "node_18",
- "FabricIngress.acl.set_clone_session_id" : "node_18",
- "FabricIngress.acl.drop" : "node_18",
- "FabricIngress.acl.nop_acl" : "node_18"
+ "FabricIngress.acl.set_next_id_acl" : "node_25",
+ "FabricIngress.acl.punt_to_cpu" : "node_25",
+ "FabricIngress.acl.set_clone_session_id" : "node_25",
+ "FabricIngress.acl.drop" : "node_25",
+ "FabricIngress.acl.nop_acl" : "node_25"
},
"default_entry" : {
"action_id" : 19,
@@ -3233,10 +3547,10 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 9,
+ "id" : 13,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 104,
+ "line" : 116,
"column" : 10,
"source_fragment" : "xconnect"
},
@@ -3277,10 +3591,10 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 10,
+ "id" : 14,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 184,
+ "line" : 196,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -3311,10 +3625,10 @@
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 11,
+ "id" : 15,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 218,
+ "line" : 230,
"column" : 10,
"source_fragment" : "multicast"
},
@@ -3348,10 +3662,10 @@
},
{
"name" : "FabricIngress.next.next_vlan",
- "id" : 12,
+ "id" : 16,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 74,
+ "line" : 82,
"column" : 10,
"source_fragment" : "next_vlan"
},
@@ -3371,10 +3685,10 @@
"direct_meters" : null,
"action_ids" : [20, 3],
"actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_23",
+ "base_default_next" : "node_30",
"next_tables" : {
- "FabricIngress.next.set_vlan" : "node_23",
- "nop" : "node_23"
+ "FabricIngress.next.set_vlan" : "node_30",
+ "nop" : "node_30"
},
"default_entry" : {
"action_id" : 3,
@@ -3384,8 +3698,8 @@
}
},
{
- "name" : "tbl_act_2",
- "id" : 13,
+ "name" : "tbl_act_6",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -3399,22 +3713,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [30],
- "actions" : ["act_2"],
- "base_default_next" : "node_25",
+ "action_ids" : [34],
+ "actions" : ["act_6"],
+ "base_default_next" : "node_32",
"next_tables" : {
- "act_2" : "node_25"
+ "act_6" : "node_32"
},
"default_entry" : {
- "action_id" : 30,
+ "action_id" : 34,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_3",
- "id" : 14,
+ "name" : "tbl_act_7",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -3428,14 +3742,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31],
- "actions" : ["act_3"],
+ "action_ids" : [35],
+ "actions" : ["act_7"],
"base_default_next" : null,
"next_tables" : {
- "act_3" : null
+ "act_7" : null
},
"default_entry" : {
- "action_id" : 31,
+ "action_id" : 35,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3448,7 +3762,7 @@
"id" : 0,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 165,
+ "line" : 177,
"column" : 57,
"source_fragment" : "hashed_selector"
},
@@ -3509,7 +3823,7 @@
"id" : 1,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 104,
+ "line" : 109,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.isValid()"
},
@@ -3532,7 +3846,7 @@
"id" : 2,
"source_info" : {
"filename" : "include/control/filtering.p4",
- "line" : 110,
+ "line" : 121,
"column" : 12,
"source_fragment" : "!hdr.mpls.isValid()"
},
@@ -3555,14 +3869,83 @@
}
},
"true_next" : "tbl_act_1",
- "false_next" : "FabricIngress.filtering.ingress_port_vlan"
+ "false_next" : "node_8"
+ },
+ {
+ "name" : "node_8",
+ "id" : 3,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 130,
+ "column" : 12,
+ "source_fragment" : "hdr.mpls.isValid()"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["mpls", "$valid$"]
+ }
+ }
+ },
+ "true_next" : "tbl_act_2",
+ "false_next" : "node_10"
},
{
"name" : "node_10",
- "id" : 3,
+ "id" : 4,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 133,
+ "column" : 16,
+ "source_fragment" : "hdr.vlan_tag.isValid()"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["vlan_tag", "$valid$"]
+ }
+ }
+ },
+ "true_next" : "node_11",
+ "false_next" : "tbl_act_5"
+ },
+ {
+ "name" : "node_11",
+ "id" : 5,
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 135,
+ "column" : 19,
+ "source_fragment" : "hdr.inner_vlan_tag.isValid()"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["inner_vlan_tag", "$valid$"]
+ }
+ }
+ },
+ "true_next" : "tbl_act_3",
+ "false_next" : "tbl_act_4"
+ },
+ {
+ "name" : "node_17",
+ "id" : 6,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 74,
+ "line" : 71,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding == false"
},
@@ -3587,12 +3970,12 @@
}
}
},
- "true_next" : "node_11",
+ "true_next" : "node_18",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_11",
- "id" : 4,
+ "name" : "node_18",
+ "id" : 7,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 141,
@@ -3614,11 +3997,11 @@
}
},
"true_next" : "FabricIngress.forwarding.bridging",
- "false_next" : "node_13"
+ "false_next" : "node_20"
},
{
- "name" : "node_13",
- "id" : 5,
+ "name" : "node_20",
+ "id" : 8,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 142,
@@ -3640,11 +4023,11 @@
}
},
"true_next" : "FabricIngress.forwarding.mpls",
- "false_next" : "node_15"
+ "false_next" : "node_22"
},
{
- "name" : "node_15",
- "id" : 6,
+ "name" : "node_22",
+ "id" : 9,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 143,
@@ -3669,11 +4052,11 @@
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_18",
- "id" : 7,
+ "name" : "node_25",
+ "id" : 10,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 78,
+ "line" : 75,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next == false"
},
@@ -3702,8 +4085,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_23",
- "id" : 8,
+ "name" : "node_30",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -3724,12 +4107,12 @@
}
}
},
- "true_next" : "tbl_act_2",
- "false_next" : "node_25"
+ "true_next" : "tbl_act_6",
+ "false_next" : "node_32"
},
{
- "name" : "node_25",
- "id" : 9,
+ "name" : "node_32",
+ "id" : 12,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -3751,7 +4134,7 @@
}
},
"false_next" : null,
- "true_next" : "tbl_act_3"
+ "true_next" : "tbl_act_7"
}
]
},
@@ -3760,15 +4143,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 92,
+ "line" : 93,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_29",
+ "init_table" : "node_36",
"tables" : [
{
- "name" : "tbl_act_4",
- "id" : 15,
+ "name" : "tbl_act_8",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -3782,22 +4165,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37],
- "actions" : ["act_4"],
- "base_default_next" : "node_31",
+ "action_ids" : [41],
+ "actions" : ["act_8"],
+ "base_default_next" : "node_38",
"next_tables" : {
- "act_4" : "node_31"
+ "act_8" : "node_38"
},
"default_entry" : {
- "action_id" : 37,
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_5",
- "id" : 16,
+ "name" : "tbl_act_9",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -3811,25 +4194,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38],
- "actions" : ["act_5"],
- "base_default_next" : "node_33",
+ "action_ids" : [42],
+ "actions" : ["act_9"],
+ "base_default_next" : "node_40",
"next_tables" : {
- "act_5" : "node_33"
+ "act_9" : "node_40"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 42,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_6",
- "id" : 17,
+ "name" : "tbl_act_10",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 308,
+ "line" : 334,
"column" : 12,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -3840,14 +4223,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39],
- "actions" : ["act_6"],
- "base_default_next" : "node_35",
+ "action_ids" : [43],
+ "actions" : ["act_10"],
+ "base_default_next" : "node_42",
"next_tables" : {
- "act_6" : "node_35"
+ "act_10" : "node_42"
},
"default_entry" : {
- "action_id" : 39,
+ "action_id" : 43,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3855,10 +4238,10 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 18,
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 312,
+ "line" : 338,
"column" : 36,
"source_fragment" : "pop_mpls_if_present()"
},
@@ -3869,14 +4252,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33],
+ "action_ids" : [37],
"actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 33,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3884,10 +4267,10 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 19,
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 314,
+ "line" : 340,
"column" : 12,
"source_fragment" : "set_mpls()"
},
@@ -3898,14 +4281,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34],
+ "action_ids" : [38],
"actions" : ["FabricEgress.egress_next.set_mpls"],
"base_default_next" : "FabricEgress.egress_next.egress_vlan",
"next_tables" : {
"FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
},
"default_entry" : {
- "action_id" : 34,
+ "action_id" : 38,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3913,10 +4296,10 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 20,
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 291,
+ "line" : 317,
"column" : 10,
"source_fragment" : "egress_vlan"
},
@@ -3940,23 +4323,23 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36, 32],
+ "action_ids" : [40, 36],
"actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
"base_default_next" : null,
"next_tables" : {
- "__HIT__" : "tbl_act_7",
- "__MISS__" : "tbl_act_8"
+ "__HIT__" : "tbl_act_11",
+ "__MISS__" : "tbl_act_12"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 36,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_7",
- "id" : 21,
+ "name" : "tbl_act_11",
+ "id" : 25,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -3964,22 +4347,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [40],
- "actions" : ["act_7"],
- "base_default_next" : "node_42",
+ "action_ids" : [44],
+ "actions" : ["act_11"],
+ "base_default_next" : "node_49",
"next_tables" : {
- "act_7" : "node_42"
+ "act_11" : "node_49"
},
"default_entry" : {
- "action_id" : 40,
+ "action_id" : 44,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_8",
- "id" : 22,
+ "name" : "tbl_act_12",
+ "id" : 26,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -3987,14 +4370,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [41],
- "actions" : ["act_8"],
- "base_default_next" : "node_42",
+ "action_ids" : [45],
+ "actions" : ["act_12"],
+ "base_default_next" : "node_49",
"next_tables" : {
- "act_8" : "node_42"
+ "act_12" : "node_49"
},
"default_entry" : {
- "action_id" : 41,
+ "action_id" : 45,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4002,11 +4385,11 @@
},
{
"name" : "tbl_egress_next_push_vlan",
- "id" : 23,
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 320,
- "column" : 16,
+ "line" : 357,
+ "column" : 20,
"source_fragment" : "push_vlan()"
},
"key" : [],
@@ -4016,25 +4399,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35],
+ "action_ids" : [39],
"actions" : ["FabricEgress.egress_next.push_vlan"],
- "base_default_next" : "node_45",
+ "base_default_next" : "node_52",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_45"
+ "FabricEgress.egress_next.push_vlan" : "node_52"
},
"default_entry" : {
- "action_id" : 35,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_9",
- "id" : 24,
+ "name" : "tbl_act_13",
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 326,
+ "line" : 366,
"column" : 25,
"source_fragment" : "="
},
@@ -4045,25 +4428,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [43],
- "actions" : ["act_10"],
- "base_default_next" : "node_47",
+ "action_ids" : [47],
+ "actions" : ["act_14"],
+ "base_default_next" : "node_54",
"next_tables" : {
- "act_10" : "node_47"
+ "act_14" : "node_54"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 47,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_10",
- "id" : 25,
+ "name" : "tbl_act_14",
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 367,
"column" : 35,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -4074,25 +4457,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [42],
- "actions" : ["act_9"],
+ "action_ids" : [46],
+ "actions" : ["act_13"],
"base_default_next" : null,
"next_tables" : {
- "act_9" : null
+ "act_13" : null
},
"default_entry" : {
- "action_id" : 42,
+ "action_id" : 46,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_11",
- "id" : 26,
+ "name" : "tbl_act_15",
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 330,
+ "line" : 370,
"column" : 29,
"source_fragment" : "="
},
@@ -4103,25 +4486,25 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [45],
- "actions" : ["act_12"],
- "base_default_next" : "node_51",
+ "action_ids" : [49],
+ "actions" : ["act_16"],
+ "base_default_next" : "node_58",
"next_tables" : {
- "act_12" : "node_51"
+ "act_16" : "node_58"
},
"default_entry" : {
- "action_id" : 45,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_12",
- "id" : 27,
+ "name" : "tbl_act_16",
+ "id" : 31,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 371,
"column" : 39,
"source_fragment" : "mark_to_drop(standard_metadata)"
},
@@ -4132,14 +4515,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [44],
- "actions" : ["act_11"],
+ "action_ids" : [48],
+ "actions" : ["act_15"],
"base_default_next" : null,
"next_tables" : {
- "act_11" : null
+ "act_15" : null
},
"default_entry" : {
- "action_id" : 44,
+ "action_id" : 48,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -4149,8 +4532,8 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_29",
- "id" : 10,
+ "name" : "node_36",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 39,
@@ -4178,12 +4561,12 @@
}
}
},
- "true_next" : "tbl_act_4",
- "false_next" : "node_31"
+ "true_next" : "tbl_act_8",
+ "false_next" : "node_38"
},
{
- "name" : "node_31",
- "id" : 11,
+ "name" : "node_38",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -4204,15 +4587,15 @@
}
}
},
- "true_next" : "tbl_act_5",
- "false_next" : "node_33"
+ "true_next" : "tbl_act_9",
+ "false_next" : "node_40"
},
{
- "name" : "node_33",
- "id" : 12,
+ "name" : "node_40",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 306,
+ "line" : 332,
"column" : 12,
"source_fragment" : "fabric_metadata.is_multicast == true ..."
},
@@ -4257,15 +4640,15 @@
}
}
},
- "true_next" : "tbl_act_6",
- "false_next" : "node_35"
+ "true_next" : "tbl_act_10",
+ "false_next" : "node_42"
},
{
- "name" : "node_35",
- "id" : 13,
+ "name" : "node_42",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 311,
+ "line" : 337,
"column" : 12,
"source_fragment" : "fabric_metadata.mpls_label == 0"
},
@@ -4283,15 +4666,15 @@
}
}
},
- "true_next" : "node_36",
+ "true_next" : "node_43",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_36",
- "id" : 14,
+ "name" : "node_43",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 312,
+ "line" : 338,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -4310,12 +4693,12 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_42",
- "id" : 15,
+ "name" : "node_49",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 317,
- "column" : 12,
+ "line" : 354,
+ "column" : 16,
"source_fragment" : "!egress_vlan.apply().hit"
},
"expression" : {
@@ -4336,16 +4719,16 @@
}
}
},
- "true_next" : "node_43",
- "false_next" : "node_45"
+ "true_next" : "node_50",
+ "false_next" : "node_52"
},
{
- "name" : "node_43",
- "id" : 16,
+ "name" : "node_50",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 319,
- "column" : 16,
+ "line" : 356,
+ "column" : 20,
"source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
},
"expression" : {
@@ -4363,14 +4746,14 @@
}
},
"true_next" : "tbl_egress_next_push_vlan",
- "false_next" : "node_45"
+ "false_next" : "node_52"
},
{
- "name" : "node_45",
- "id" : 17,
+ "name" : "node_52",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 325,
+ "line" : 365,
"column" : 12,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -4385,15 +4768,15 @@
}
}
},
- "true_next" : "tbl_act_9",
- "false_next" : "node_49"
+ "true_next" : "tbl_act_13",
+ "false_next" : "node_56"
},
{
- "name" : "node_47",
- "id" : 18,
+ "name" : "node_54",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 327,
+ "line" : 367,
"column" : 16,
"source_fragment" : "hdr.mpls.ttl == 0"
},
@@ -4412,14 +4795,14 @@
}
},
"false_next" : null,
- "true_next" : "tbl_act_10"
+ "true_next" : "tbl_act_14"
},
{
- "name" : "node_49",
- "id" : 19,
+ "name" : "node_56",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 329,
+ "line" : 369,
"column" : 15,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -4435,14 +4818,14 @@
}
},
"false_next" : null,
- "true_next" : "tbl_act_11"
+ "true_next" : "tbl_act_15"
},
{
- "name" : "node_51",
- "id" : 20,
+ "name" : "node_58",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
- "line" : 331,
+ "line" : 371,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl == 0"
},
@@ -4461,7 +4844,7 @@
}
},
"false_next" : null,
- "true_next" : "tbl_act_12"
+ "true_next" : "tbl_act_16"
}
]
}