Backport fabric-spgw TNA changes to v1model
Allow building fabric.p4 with custom S1U_SGW_PREFIX
Change-Id: I4fcaf3f2b56e6d024e54f8897467c280be73e001
Backport fabric-spgw TNA changes to v1model
This branch ports the SPGW pipeline of fabric-tna back to v1model to
make the tables and actions consistent across the two versions. This
consistency will allow for testing of ONOS apps on both software and
hardware targets, since the only available software target that works
with ONOS requires v1model p4 programs. Changes to the fabric testing
suite (fabric-p4test) will be pushed in parallel.
Change-Id: Iad393b27f08a4fcd29f82e59d181871475ef2b10
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index e0a3285..250c226 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -4,17 +4,14 @@
"name" : "scalars_0",
"id" : 0,
"fields" : [
- ["tmp_2", 16, false],
- ["tmp_3", 16, false],
- ["tmp_4", 4, false],
- ["tmp", 8, false],
- ["tmp_0", 32, false],
- ["tmp_1", 32, false],
- ["spgw_ingress_tmp", 1, false],
- ["spgw_ingress_tmp_0", 1, false],
- ["spgw_normalizer_hasReturned", 1, false],
+ ["tmp_0", 16, false],
+ ["tmp_1", 16, false],
+ ["tmp_2", 4, false],
+ ["tmp", 32, false],
+ ["tmp_3", 32, false],
["spgw_ingress_hasReturned", 1, false],
["egress_next_tmp", 1, false],
+ ["spgw_egress_hasReturned", 1, false],
["fabric_metadata_t._ip_eth_type0", 16, false],
["fabric_metadata_t._vlan_id1", 12, false],
["fabric_metadata_t._vlan_pri2", 3, false],
@@ -32,17 +29,23 @@
["fabric_metadata_t._l4_dport14", 16, false],
["fabric_metadata_t._ipv4_src_addr15", 32, false],
["fabric_metadata_t._ipv4_dst_addr16", 32, false],
- ["fabric_metadata_t._spgw_direction17", 2, false],
- ["fabric_metadata_t._spgw_ipv4_len18", 16, false],
- ["fabric_metadata_t._spgw_teid19", 32, false],
- ["fabric_metadata_t._spgw_tunnel_src_addr20", 32, false],
- ["fabric_metadata_t._spgw_tunnel_dst_addr21", 32, false],
- ["fabric_metadata_t._spgw_ctr_id22", 32, false],
- ["fabric_metadata_t._spgw_far_id23", 32, false],
- ["fabric_metadata_t._spgw_pdr_hit24", 1, false],
- ["fabric_metadata_t._spgw_far_dropped25", 1, false],
- ["fabric_metadata_t._spgw_notify_cp26", 1, false],
- ["fabric_metadata_t._spgw_outer_header_creation27", 1, false],
+ ["fabric_metadata_t._inner_l4_sport17", 16, false],
+ ["fabric_metadata_t._inner_l4_dport18", 16, false],
+ ["fabric_metadata_t._spgw_direction19", 2, false],
+ ["fabric_metadata_t._spgw_ipv4_len20", 16, false],
+ ["fabric_metadata_t._spgw_teid21", 32, false],
+ ["fabric_metadata_t._spgw_tunnel_src_port22", 16, false],
+ ["fabric_metadata_t._spgw_tunnel_src_addr23", 32, false],
+ ["fabric_metadata_t._spgw_tunnel_dst_addr24", 32, false],
+ ["fabric_metadata_t._spgw_ctr_id25", 32, false],
+ ["fabric_metadata_t._spgw_far_id26", 32, false],
+ ["fabric_metadata_t._spgw_src_iface27", 8, false],
+ ["fabric_metadata_t._spgw_skip_spgw28", 1, false],
+ ["fabric_metadata_t._spgw_pdr_hit29", 1, false],
+ ["fabric_metadata_t._spgw_far_dropped30", 1, false],
+ ["fabric_metadata_t._spgw_notify_spgwc31", 1, false],
+ ["fabric_metadata_t._spgw_needs_gtpu_encap32", 1, false],
+ ["fabric_metadata_t._spgw_needs_gtpu_decap33", 1, false],
["_padding_0", 6, false]
]
},
@@ -265,64 +268,85 @@
"pi_omit" : true
},
{
- "name" : "gtpu",
+ "name" : "outer_gtpu",
"id" : 9,
"header_type" : "gtpu_t",
"metadata" : false,
"pi_omit" : true
},
{
- "name" : "inner_ipv4",
+ "name" : "gtpu",
"id" : 10,
+ "header_type" : "gtpu_t",
+ "metadata" : false,
+ "pi_omit" : true
+ },
+ {
+ "name" : "inner_ipv4",
+ "id" : 11,
"header_type" : "ipv4_t",
"metadata" : false,
"pi_omit" : true
},
{
"name" : "inner_udp",
- "id" : 11,
+ "id" : 12,
"header_type" : "udp_t",
"metadata" : false,
"pi_omit" : true
},
{
- "name" : "ipv4",
- "id" : 12,
- "header_type" : "ipv4_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "tcp",
+ "name" : "inner_tcp",
"id" : 13,
"header_type" : "tcp_t",
"metadata" : false,
"pi_omit" : true
},
{
- "name" : "udp",
+ "name" : "inner_icmp",
"id" : 14,
+ "header_type" : "icmp_t",
+ "metadata" : false,
+ "pi_omit" : true
+ },
+ {
+ "name" : "ipv4",
+ "id" : 15,
+ "header_type" : "ipv4_t",
+ "metadata" : false,
+ "pi_omit" : true
+ },
+ {
+ "name" : "tcp",
+ "id" : 16,
+ "header_type" : "tcp_t",
+ "metadata" : false,
+ "pi_omit" : true
+ },
+ {
+ "name" : "udp",
+ "id" : 17,
"header_type" : "udp_t",
"metadata" : false,
"pi_omit" : true
},
{
"name" : "icmp",
- "id" : 15,
+ "id" : 18,
"header_type" : "icmp_t",
"metadata" : false,
"pi_omit" : true
},
{
"name" : "packet_out",
- "id" : 16,
+ "id" : 19,
"header_type" : "packet_out_header_t",
"metadata" : false,
"pi_omit" : true
},
{
"name" : "packet_in",
- "id" : 17,
+ "id" : 20,
"header_type" : "packet_in_header_t",
"metadata" : false,
"pi_omit" : true
@@ -443,7 +467,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_2"]
+ "value" : ["scalars", "tmp_0"]
},
{
"type" : "lookahead",
@@ -481,7 +505,7 @@
"transition_key" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_2"]
+ "value" : ["scalars", "tmp_0"]
}
]
},
@@ -502,7 +526,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_3"]
+ "value" : ["scalars", "tmp_1"]
},
{
"type" : "lookahead",
@@ -528,7 +552,7 @@
"transition_key" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_3"]
+ "value" : ["scalars", "tmp_1"]
}
]
},
@@ -638,7 +662,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_4"]
+ "value" : ["scalars", "tmp_2"]
},
{
"type" : "lookahead",
@@ -664,7 +688,7 @@
"transition_key" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_4"]
+ "value" : ["scalars", "tmp_2"]
}
]
},
@@ -905,77 +929,6 @@
{
"parameters" : [
{
- "type" : "field",
- "value" : ["scalars", "tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : ">>",
- "left" : {
- "type" : "field",
- "value" : ["ipv4", "dst_addr"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x18"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- }
- }
- ],
- "op" : "set"
- }
- ],
- "transitions" : [
- {
- "type" : "hexstr",
- "value" : "0x8c",
- "mask" : null,
- "next_state" : "do_parse_gtpu"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- }
- ]
- },
- {
- "name" : "do_parse_gtpu",
- "id" : 12,
- "parser_ops" : [
- {
- "parameters" : [
- {
"type" : "regular",
"value" : "gtpu"
}
@@ -1026,7 +979,7 @@
},
{
"name" : "parse_inner_udp",
- "id" : 13,
+ "id" : 12,
"parser_ops" : [
{
"parameters" : [
@@ -1041,7 +994,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
},
{
"type" : "field",
@@ -1054,7 +1007,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
},
{
"type" : "field",
@@ -1083,30 +1036,18 @@
"id" : 0,
"source_info" : {
"filename" : "include/parser.p4",
- "line" : 267,
+ "line" : 268,
"column" : 8,
"source_fragment" : "FabricDeparser"
},
- "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
+ "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "outer_gtpu", "ipv4", "tcp", "udp", "icmp", "gtpu", "inner_ipv4", "inner_tcp", "inner_udp", "inner_icmp"]
}
],
"meter_arrays" : [],
"counter_arrays" : [
{
- "name" : "FabricIngress.spgw_ingress.pdr_counter",
- "id" : 0,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 56,
- "column" : 49,
- "source_fragment" : "pdr_counter"
- },
- "size" : 1024,
- "is_direct" : false
- },
- {
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
- "id" : 1,
+ "id" : 0,
"is_direct" : true,
"binding" : "FabricIngress.filtering.ingress_port_vlan",
"source_info" : {
@@ -1118,7 +1059,7 @@
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
- "id" : 2,
+ "id" : 1,
"is_direct" : true,
"binding" : "FabricIngress.filtering.fwd_classifier",
"source_info" : {
@@ -1130,7 +1071,7 @@
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
- "id" : 3,
+ "id" : 2,
"is_direct" : true,
"binding" : "FabricIngress.forwarding.bridging",
"source_info" : {
@@ -1142,7 +1083,7 @@
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
- "id" : 4,
+ "id" : 3,
"is_direct" : true,
"binding" : "FabricIngress.forwarding.mpls",
"source_info" : {
@@ -1154,7 +1095,7 @@
},
{
"name" : "FabricIngress.acl.acl_counter",
- "id" : 5,
+ "id" : 4,
"is_direct" : true,
"binding" : "FabricIngress.acl.acl",
"source_info" : {
@@ -1166,7 +1107,7 @@
},
{
"name" : "FabricIngress.next.next_vlan_counter",
- "id" : 6,
+ "id" : 5,
"is_direct" : true,
"binding" : "FabricIngress.next.next_vlan",
"source_info" : {
@@ -1178,7 +1119,7 @@
},
{
"name" : "FabricIngress.next.xconnect_counter",
- "id" : 7,
+ "id" : 6,
"is_direct" : true,
"binding" : "FabricIngress.next.xconnect",
"source_info" : {
@@ -1190,7 +1131,7 @@
},
{
"name" : "FabricIngress.next.hashed_counter",
- "id" : 8,
+ "id" : 7,
"is_direct" : true,
"binding" : "FabricIngress.next.hashed",
"source_info" : {
@@ -1202,7 +1143,7 @@
},
{
"name" : "FabricIngress.next.multicast_counter",
- "id" : 9,
+ "id" : 8,
"is_direct" : true,
"binding" : "FabricIngress.next.multicast",
"source_info" : {
@@ -1214,7 +1155,7 @@
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
- "id" : 10,
+ "id" : 9,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 26,
@@ -1226,7 +1167,7 @@
},
{
"name" : "FabricIngress.port_counters_control.ingress_port_counter",
- "id" : 11,
+ "id" : 10,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 27,
@@ -1237,20 +1178,20 @@
"is_direct" : false
},
{
- "name" : "FabricEgress.spgw_egress.pdr_counter",
- "id" : 12,
+ "name" : "FabricIngress.spgw_ingress.pdr_counter",
+ "id" : 11,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 246,
- "column" : 49,
+ "filename" : "include/control/spgw.p4",
+ "line" : 182,
+ "column" : 53,
"source_fragment" : "pdr_counter"
},
- "size" : 1024,
+ "size" : 2048,
"is_direct" : false
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
- "id" : 13,
+ "id" : 12,
"is_direct" : true,
"binding" : "FabricEgress.egress_next.egress_vlan",
"source_info" : {
@@ -1259,6 +1200,18 @@
"column" : 50,
"source_fragment" : "egress_vlan_counter"
}
+ },
+ {
+ "name" : "FabricEgress.spgw_egress.pdr_counter",
+ "id" : 13,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 303,
+ "column" : 53,
+ "source_fragment" : "pdr_counter"
+ },
+ "size" : 2048,
+ "is_direct" : false
}
],
"register_arrays" : [],
@@ -1328,8 +1281,8 @@
"name" : "calc_0",
"id" : 1,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 306,
+ "filename" : "include/control/spgw.p4",
+ "line" : 364,
"column" : 8,
"source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
},
@@ -1492,733 +1445,8 @@
"primitives" : []
},
{
- "name" : "nop",
- "id" : 7,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "nop",
- "id" : 8,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 9,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 10,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "FabricIngress.spgw_ingress.gtpu_decap",
- "id" : 11,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
- },
- {
- "type" : "field",
- "value" : ["gtpu", "teid"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 61,
- "column" : 30,
- "source_fragment" : "= gtpu.teid; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
- },
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "dst_addr"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 62,
- "column" : 41,
- "source_fragment" : "= gtpu_ipv4.dst_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "src_addr"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 64,
- "column" : 34,
- "source_fragment" : "= ipv4.src_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "dst_addr"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 65,
- "column" : 34,
- "source_fragment" : "= ipv4.dst_addr; ..."
- }
- },
- {
- "op" : "remove_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_ipv4"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 67,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.setInvalid()"
- }
- },
- {
- "op" : "remove_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_udp"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 68,
- "column" : 8,
- "source_fragment" : "gtpu_udp.setInvalid()"
- }
- },
- {
- "op" : "remove_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 69,
- "column" : 8,
- "source_fragment" : "gtpu.setInvalid()"
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
- "id" : 12,
- "runtime_data" : [
- {
- "name" : "ctr_id",
- "bitwidth" : 32
- },
- {
- "name" : "far_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 97,
- "column" : 33,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 98,
- "column" : 32,
- "source_fragment" : "= ctr_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 99,
- "column" : 32,
- "source_fragment" : "= far_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
- "id" : 13,
- "runtime_data" : [
- {
- "name" : "ctr_id",
- "bitwidth" : 32
- },
- {
- "name" : "far_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 97,
- "column" : 33,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 98,
- "column" : 32,
- "source_fragment" : "= ctr_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 99,
- "column" : 32,
- "source_fragment" : "= far_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
- "id" : 14,
- "runtime_data" : [
- {
- "name" : "ctr_id",
- "bitwidth" : 32
- },
- {
- "name" : "far_id",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 97,
- "column" : 33,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 98,
- "column" : 32,
- "source_fragment" : "= ctr_id; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_id23"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 99,
- "column" : 32,
- "source_fragment" : "= far_id; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw_ingress.load_normal_far_attributes",
- "id" : 15,
- "runtime_data" : [
- {
- "name" : "drop",
- "bitwidth" : 1
- },
- {
- "name" : "notify_cp",
- "bitwidth" : 1
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 0
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 146,
- "column" : 37,
- "source_fragment" : "= (bool)drop; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_notify_cp26"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 1
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 147,
- "column" : 35,
- "source_fragment" : "= (bool)notify_cp; ..."
- }
- }
- ]
- },
- {
- "name" : "FabricIngress.spgw_ingress.load_tunnel_far_attributes",
- "id" : 16,
- "runtime_data" : [
- {
- "name" : "drop",
- "bitwidth" : 1
- },
- {
- "name" : "notify_cp",
- "bitwidth" : 1
- },
- {
- "name" : "tunnel_src_addr",
- "bitwidth" : 32
- },
- {
- "name" : "tunnel_dst_addr",
- "bitwidth" : 32
- },
- {
- "name" : "teid",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 0
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 155,
- "column" : 37,
- "source_fragment" : "= (bool)drop; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_notify_cp26"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "!=",
- "left" : {
- "type" : "local",
- "value" : 1
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00"
- }
- }
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 156,
- "column" : 35,
- "source_fragment" : "= (bool)notify_cp; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_outer_header_creation27"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 158,
- "column" : 47,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
- },
- {
- "type" : "runtime_data",
- "value" : 4
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 159,
- "column" : 30,
- "source_fragment" : "= teid; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr20"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 160,
- "column" : 41,
- "source_fragment" : "= tunnel_src_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 161,
- "column" : 41,
- "source_fragment" : "= tunnel_dst_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
- },
- {
- "type" : "runtime_data",
- "value" : 2
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 163,
- "column" : 34,
- "source_fragment" : "= tunnel_src_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
- },
- {
- "type" : "runtime_data",
- "value" : 3
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 164,
- "column" : 34,
- "source_fragment" : "= tunnel_dst_addr; ..."
- }
- }
- ]
- },
- {
"name" : "FabricIngress.filtering.deny",
- "id" : 17,
+ "id" : 7,
"runtime_data" : [],
"primitives" : [
{
@@ -2283,13 +1511,13 @@
},
{
"name" : "FabricIngress.filtering.permit",
- "id" : 18,
+ "id" : 8,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricIngress.filtering.permit_with_internal_vlan",
- "id" : 19,
+ "id" : 9,
"runtime_data" : [
{
"name" : "vlan_id",
@@ -2320,7 +1548,7 @@
},
{
"name" : "FabricIngress.filtering.set_forwarding_type",
- "id" : 20,
+ "id" : 10,
"runtime_data" : [
{
"name" : "fwd_type",
@@ -2351,7 +1579,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_bridging",
- "id" : 21,
+ "id" : 11,
"runtime_data" : [
{
"name" : "next_id",
@@ -2382,7 +1610,7 @@
},
{
"name" : "FabricIngress.forwarding.pop_mpls_and_next",
- "id" : 22,
+ "id" : 12,
"runtime_data" : [
{
"name" : "next_id",
@@ -2432,7 +1660,7 @@
},
{
"name" : "FabricIngress.forwarding.set_next_id_routing_v4",
- "id" : 23,
+ "id" : 13,
"runtime_data" : [
{
"name" : "next_id",
@@ -2463,13 +1691,13 @@
},
{
"name" : "FabricIngress.forwarding.nop_routing_v4",
- "id" : 24,
+ "id" : 14,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricIngress.acl.set_next_id_acl",
- "id" : 25,
+ "id" : 15,
"runtime_data" : [
{
"name" : "next_id",
@@ -2500,7 +1728,7 @@
},
{
"name" : "FabricIngress.acl.punt_to_cpu",
- "id" : 26,
+ "id" : 16,
"runtime_data" : [],
"primitives" : [
{
@@ -2555,7 +1783,7 @@
},
{
"name" : "FabricIngress.acl.set_clone_session_id",
- "id" : 27,
+ "id" : 17,
"runtime_data" : [
{
"name" : "clone_id",
@@ -2586,7 +1814,7 @@
},
{
"name" : "FabricIngress.acl.drop",
- "id" : 28,
+ "id" : 18,
"runtime_data" : [],
"primitives" : [
{
@@ -2637,13 +1865,13 @@
},
{
"name" : "FabricIngress.acl.nop_acl",
- "id" : 29,
+ "id" : 19,
"runtime_data" : [],
"primitives" : []
},
{
"name" : "FabricIngress.next.set_vlan",
- "id" : 30,
+ "id" : 20,
"runtime_data" : [
{
"name" : "vlan_id",
@@ -2674,7 +1902,7 @@
},
{
"name" : "FabricIngress.next.output_xconnect",
- "id" : 31,
+ "id" : 21,
"runtime_data" : [
{
"name" : "port_num",
@@ -2705,7 +1933,7 @@
},
{
"name" : "FabricIngress.next.set_next_id_xconnect",
- "id" : 32,
+ "id" : 22,
"runtime_data" : [
{
"name" : "next_id",
@@ -2736,7 +1964,7 @@
},
{
"name" : "FabricIngress.next.output_hashed",
- "id" : 33,
+ "id" : 23,
"runtime_data" : [
{
"name" : "port_num",
@@ -2767,7 +1995,7 @@
},
{
"name" : "FabricIngress.next.routing_hashed",
- "id" : 34,
+ "id" : 24,
"runtime_data" : [
{
"name" : "port_num",
@@ -2844,7 +2072,7 @@
},
{
"name" : "FabricIngress.next.mpls_routing_hashed",
- "id" : 35,
+ "id" : 25,
"runtime_data" : [
{
"name" : "port_num",
@@ -2944,7 +2172,7 @@
},
{
"name" : "FabricIngress.next.set_mcast_group_id",
- "id" : 36,
+ "id" : 26,
"runtime_data" : [
{
"name" : "group_id",
@@ -3003,16 +2231,126 @@
]
},
{
- "name" : "act",
- "id" : 37,
- "runtime_data" : [],
+ "name" : "FabricIngress.spgw_ingress.set_source_iface",
+ "id" : 27,
+ "runtime_data" : [
+ {
+ "name" : "src_iface",
+ "bitwidth" : 8
+ },
+ {
+ "name" : "direction",
+ "bitwidth" : 2
+ },
+ {
+ "name" : "skip_spgw",
+ "bitwidth" : 1
+ }
+ ],
"primitives" : [
{
"op" : "assign",
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "spgw_normalizer_hasReturned"]
+ "value" : ["scalars", "fabric_metadata_t._spgw_src_iface27"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 50,
+ "column" : 33,
+ "source_fragment" : "= src_iface; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 51,
+ "column" : 33,
+ "source_fragment" : "= direction; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 2
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 52,
+ "column" : 33,
+ "source_fragment" : "= (bool)skip_spgw; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
+ "id" : 28,
+ "runtime_data" : [
+ {
+ "name" : "ctr_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "far_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "needs_gtpu_decap",
+ "bitwidth" : 1
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit29"]
},
{
"type" : "expression",
@@ -3030,47 +2368,10 @@
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 34,
- "column" : 32,
- "source_fragment" : "return"
- }
- }
- ]
- },
- {
- "name" : "act_0",
- "id" : 38,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "remove_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_ipv4"
- }
- ],
- "source_info" : {
- "filename" : "fabric.p4",
- "line" : 62,
- "column" : 50,
- "source_fragment" : "hdr.gtpu_ipv4"
- }
- },
- {
- "op" : "remove_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_udp"
- }
- ],
- "source_info" : {
- "filename" : "fabric.p4",
- "line" : 62,
- "column" : 65,
- "source_fragment" : "hdr.gtpu_udp"
+ "filename" : "include/control/spgw.p4",
+ "line" : 75,
+ "column" : 31,
+ "source_fragment" : "= true; ..."
}
},
{
@@ -3078,7 +2379,104 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "spgw_normalizer_hasReturned"]
+ "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 76,
+ "column" : 30,
+ "source_fragment" : "= ctr_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_far_id26"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 77,
+ "column" : 30,
+ "source_fragment" : "= far_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 2
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 78,
+ "column" : 40,
+ "source_fragment" : "= (bool)needs_gtpu_decap; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.set_pdr_attributes",
+ "id" : 29,
+ "runtime_data" : [
+ {
+ "name" : "ctr_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "far_id",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "needs_gtpu_decap",
+ "bitwidth" : 1
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit29"]
},
{
"type" : "expression",
@@ -3089,85 +2487,600 @@
"left" : null,
"right" : {
"type" : "bool",
- "value" : false
+ "value" : true
}
}
}
}
- ]
- }
- ]
- },
- {
- "name" : "act_1",
- "id" : 39,
- "runtime_data" : [],
- "primitives" : [
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 75,
+ "column" : 31,
+ "source_fragment" : "= true; ..."
+ }
+ },
{
- "op" : "assign_header",
+ "op" : "assign",
"parameters" : [
{
- "type" : "header",
- "value" : "udp"
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
},
{
- "type" : "header",
- "value" : "inner_udp"
+ "type" : "runtime_data",
+ "value" : 0
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 39,
- "column" : 16,
- "source_fragment" : "= inner_udp; ..."
+ "filename" : "include/control/spgw.p4",
+ "line" : 76,
+ "column" : 30,
+ "source_fragment" : "= ctr_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_far_id26"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 77,
+ "column" : 30,
+ "source_fragment" : "= far_id; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 2
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 78,
+ "column" : 40,
+ "source_fragment" : "= (bool)needs_gtpu_decap; ..."
}
}
]
},
{
- "name" : "act_2",
- "id" : 40,
- "runtime_data" : [],
+ "name" : "FabricIngress.spgw_ingress.load_normal_far_attributes",
+ "id" : 30,
+ "runtime_data" : [
+ {
+ "name" : "drop",
+ "bitwidth" : 1
+ },
+ {
+ "name" : "notify_cp",
+ "bitwidth" : 1
+ }
+ ],
"primitives" : [
{
- "op" : "remove_header",
+ "op" : "assign",
"parameters" : [
{
- "type" : "header",
- "value" : "udp"
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 0
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 41,
- "column" : 12,
- "source_fragment" : "udp.setInvalid()"
+ "filename" : "include/control/spgw.p4",
+ "line" : 140,
+ "column" : 35,
+ "source_fragment" : "= (bool)drop; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc31"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 1
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 141,
+ "column" : 36,
+ "source_fragment" : "= (bool)notify_cp; ..."
}
}
]
},
{
- "name" : "act_3",
- "id" : 41,
- "runtime_data" : [],
+ "name" : "FabricIngress.spgw_ingress.load_tunnel_far_attributes",
+ "id" : 31,
+ "runtime_data" : [
+ {
+ "name" : "drop",
+ "bitwidth" : 1
+ },
+ {
+ "name" : "notify_cp",
+ "bitwidth" : 1
+ },
+ {
+ "name" : "tunnel_src_port",
+ "bitwidth" : 16
+ },
+ {
+ "name" : "tunnel_src_addr",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "tunnel_dst_addr",
+ "bitwidth" : 32
+ },
+ {
+ "name" : "teid",
+ "bitwidth" : 32
+ }
+ ],
"primitives" : [
{
- "op" : "assign_header",
+ "op" : "assign",
"parameters" : [
{
- "type" : "header",
- "value" : "gtpu_ipv4"
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
},
{
- "type" : "header",
- "value" : "ipv4"
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 0
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 35,
- "column" : 18,
- "source_fragment" : "= ipv4; ..."
+ "filename" : "include/control/spgw.p4",
+ "line" : 150,
+ "column" : 35,
+ "source_fragment" : "= (bool)drop; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_notify_spgwc31"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "!=",
+ "left" : {
+ "type" : "local",
+ "value" : 1
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 151,
+ "column" : 36,
+ "source_fragment" : "= (bool)notify_cp; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap32"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 153,
+ "column" : 40,
+ "source_fragment" : "= true; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 5
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 154,
+ "column" : 28,
+ "source_fragment" : "= teid; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port22"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 2
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 155,
+ "column" : 39,
+ "source_fragment" : "= tunnel_src_port; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr23"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 3
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 156,
+ "column" : 39,
+ "source_fragment" : "= tunnel_src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr24"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 4
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 157,
+ "column" : 39,
+ "source_fragment" : "= tunnel_dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 3
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 159,
+ "column" : 32,
+ "source_fragment" : "= tunnel_src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 4
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 160,
+ "column" : 32,
+ "source_fragment" : "= tunnel_dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 2
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 161,
+ "column" : 27,
+ "source_fragment" : "= tunnel_src_port; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0868"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 162,
+ "column" : 27,
+ "source_fragment" : "= 2152; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.decap_inner_tcp",
+ "id" : 32,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0800"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 128,
+ "column" : 31,
+ "source_fragment" : "0x0800; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "protocol"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 189,
+ "column" : 27,
+ "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "src_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 190,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "dst_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 191,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 192,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_sport; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 193,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_dport; ..."
}
},
{
@@ -3183,10 +3096,55 @@
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 36,
- "column" : 13,
- "source_fragment" : "= inner_ipv4; ..."
+ "filename" : "include/control/spgw.p4",
+ "line" : 195,
+ "column" : 8,
+ "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 196,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_ipv4.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 197,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "udp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 201,
+ "column" : 8,
+ "source_fragment" : "hdr.udp.setInvalid()"
}
},
{
@@ -3194,25 +3152,648 @@
"parameters" : [
{
"type" : "header",
- "value" : "gtpu_udp"
+ "value" : "tcp"
},
{
"type" : "header",
+ "value" : "inner_tcp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 202,
+ "column" : 8,
+ "source_fragment" : "hdr.tcp = hdr.inner_tcp"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_tcp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 203,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_tcp.setInvalid()"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.decap_inner_udp",
+ "id" : 33,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0800"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 128,
+ "column" : 31,
+ "source_fragment" : "0x0800; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "protocol"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 189,
+ "column" : 27,
+ "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "src_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 190,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "dst_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 191,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 192,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_sport; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 193,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_dport; ..."
+ }
+ },
+ {
+ "op" : "assign_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "ipv4"
+ },
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 195,
+ "column" : 8,
+ "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 196,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_ipv4.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 197,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu.setInvalid()"
+ }
+ },
+ {
+ "op" : "assign_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "udp"
+ },
+ {
+ "type" : "header",
+ "value" : "inner_udp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 207,
+ "column" : 8,
+ "source_fragment" : "hdr.udp = hdr.inner_udp"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_udp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 208,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_udp.setInvalid()"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.decap_inner_icmp",
+ "id" : 34,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0800"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 128,
+ "column" : 31,
+ "source_fragment" : "0x0800; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "protocol"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 189,
+ "column" : 27,
+ "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "src_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 190,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "dst_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 191,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 192,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_sport; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 193,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_dport; ..."
+ }
+ },
+ {
+ "op" : "assign_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "ipv4"
+ },
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 195,
+ "column" : 8,
+ "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 196,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_ipv4.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 197,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
"value" : "udp"
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 37,
- "column" : 17,
- "source_fragment" : "= udp; ..."
+ "filename" : "include/control/spgw.p4",
+ "line" : 212,
+ "column" : 8,
+ "source_fragment" : "hdr.udp.setInvalid()"
+ }
+ },
+ {
+ "op" : "assign_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "icmp"
+ },
+ {
+ "type" : "header",
+ "value" : "inner_icmp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 213,
+ "column" : 8,
+ "source_fragment" : "hdr.icmp = hdr.inner_icmp"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_icmp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 214,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_icmp.setInvalid()"
}
}
]
},
{
- "name" : "act_4",
- "id" : 42,
+ "name" : "FabricIngress.spgw_ingress.decap_inner_unknown",
+ "id" : 35,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0800"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 128,
+ "column" : 31,
+ "source_fragment" : "0x0800; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "protocol"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 189,
+ "column" : 27,
+ "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_src_addr15"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "src_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 190,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._ipv4_dst_addr16"]
+ },
+ {
+ "type" : "field",
+ "value" : ["inner_ipv4", "dst_addr"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 191,
+ "column" : 32,
+ "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_sport17"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 192,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_sport; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._inner_l4_dport18"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 193,
+ "column" : 27,
+ "source_fragment" : "= fabric_md.inner_l4_dport; ..."
+ }
+ },
+ {
+ "op" : "assign_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "ipv4"
+ },
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 195,
+ "column" : 8,
+ "source_fragment" : "hdr.ipv4 = hdr.inner_ipv4"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "inner_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 196,
+ "column" : 8,
+ "source_fragment" : "hdr.inner_ipv4.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 197,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu.setInvalid()"
+ }
+ },
+ {
+ "op" : "remove_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "udp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 218,
+ "column" : 8,
+ "source_fragment" : "hdr.udp.setInvalid()"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act",
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -3291,8 +3872,191 @@
]
},
{
+ "name" : "act_0",
+ "id" : 37,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "spgw_ingress_hasReturned"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : false
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name" : "act_1",
+ "id" : 38,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "spgw_ingress_hasReturned"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 251,
+ "column" : 46,
+ "source_fragment" : "return"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_2",
+ "id" : 39,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "count",
+ "parameters" : [
+ {
+ "type" : "counter_array",
+ "value" : "FabricIngress.spgw_ingress.pdr_counter"
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 265,
+ "column" : 8,
+ "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_3",
+ "id" : 40,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 282,
+ "column" : 38,
+ "source_fragment" : "= true; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._skip_next7"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 283,
+ "column" : 32,
+ "source_fragment" : "= true; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_4",
+ "id" : 41,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+ },
+ {
+ "type" : "field",
+ "value" : ["ipv4", "total_len"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 291,
+ "column" : 32,
+ "source_fragment" : "= hdr.ipv4.total_len; ..."
+ }
+ }
+ ]
+ },
+ {
"name" : "act_5",
- "id" : 43,
+ "id" : 42,
"runtime_data" : [],
"primitives" : [
{
@@ -3356,7 +4120,7 @@
},
{
"name" : "act_6",
- "id" : 44,
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -3382,7 +4146,7 @@
},
{
"name" : "act_7",
- "id" : 45,
+ "id" : 44,
"runtime_data" : [],
"primitives" : [
{
@@ -3390,439 +4154,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name" : "act_8",
- "id" : 46,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : false
- }
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name" : "act_9",
- "id" : 47,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "mark_to_drop",
- "parameters" : [
- {
- "type" : "header",
- "value" : "standard_metadata"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 187,
- "column" : 16,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- }
- }
- ]
- },
- {
- "name" : "act_10",
- "id" : 48,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 150,
- "column" : 36,
- "source_fragment" : "2w1; ..."
- }
- }
- ]
- },
- {
- "name" : "act_11",
- "id" : 49,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp_0"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name" : "act_12",
- "id" : 50,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp_0"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : false
- }
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name" : "act_13",
- "id" : 51,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
- },
- {
- "type" : "hexstr",
- "value" : "0x02"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 151,
- "column" : 38,
- "source_fragment" : "2w2; ..."
- }
- }
- ]
- },
- {
- "name" : "act_14",
- "id" : 52,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 149,
- "column" : 37,
- "source_fragment" : "2w0; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_hasReturned"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 196,
- "column" : 12,
- "source_fragment" : "return"
- }
- }
- ]
- },
- {
- "name" : "act_15",
- "id" : 53,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_hasReturned"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : false
- }
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name" : "act_16",
- "id" : 54,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_hasReturned"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 206,
- "column" : 12,
- "source_fragment" : "return"
- }
- }
- ]
- },
- {
- "name" : "act_17",
- "id" : 55,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "FabricIngress.spgw_ingress.pdr_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 213,
- "column" : 8,
- "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
- }
- }
- ]
- },
- {
- "name" : "act_18",
- "id" : 56,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 223,
- "column" : 40,
- "source_fragment" : "= true; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._skip_next7"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "b2d",
- "left" : null,
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 224,
- "column" : 34,
- "source_fragment" : "= true; ..."
- }
- }
- ]
- },
- {
- "name" : "act_19",
- "id" : 57,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "total_len"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 232,
- "column" : 34,
- "source_fragment" : "= ipv4.total_len; ..."
- }
- }
- ]
- },
- {
- "name" : "act_20",
- "id" : 58,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
+ "value" : ["scalars", "tmp"]
},
{
"type" : "expression",
@@ -3858,7 +4190,7 @@
},
{
"type" : "field",
- "value" : ["scalars", "tmp_0"]
+ "value" : ["scalars", "tmp"]
}
],
"source_info" : {
@@ -3871,8 +4203,8 @@
]
},
{
- "name" : "act_21",
- "id" : 59,
+ "name" : "act_8",
+ "id" : 45,
"runtime_data" : [],
"primitives" : [
{
@@ -3880,7 +4212,7 @@
"parameters" : [
{
"type" : "field",
- "value" : ["scalars", "tmp_1"]
+ "value" : ["scalars", "tmp_3"]
},
{
"type" : "expression",
@@ -3916,7 +4248,7 @@
},
{
"type" : "field",
- "value" : ["scalars", "tmp_1"]
+ "value" : ["scalars", "tmp_3"]
}
],
"source_info" : {
@@ -3930,605 +4262,13 @@
},
{
"name" : "nop",
- "id" : 60,
+ "id" : 46,
"runtime_data" : [],
"primitives" : []
},
{
- "name" : "FabricEgress.spgw_egress.gtpu_encap",
- "id" : 61,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "add_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_ipv4"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 251,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.setValid()"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "version"]
- },
- {
- "type" : "hexstr",
- "value" : "0x04"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 252,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.version = 4"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "ihl"]
- },
- {
- "type" : "hexstr",
- "value" : "0x05"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 132,
- "column" : 28,
- "source_fragment" : "5; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "dscp"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 254,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.dscp = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "ecn"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 255,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.ecn = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "total_len"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "+",
- "left" : {
- "type" : "field",
- "value" : ["ipv4", "total_len"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x0024"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffff"
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 256,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "identification"]
- },
- {
- "type" : "hexstr",
- "value" : "0x1513"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 258,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.identification = 0x1513"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "flags"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 259,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.flags = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "frag_offset"]
- },
- {
- "type" : "hexstr",
- "value" : "0x0000"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 260,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.frag_offset = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "ttl"]
- },
- {
- "type" : "hexstr",
- "value" : "0x40"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 145,
- "column" : 32,
- "source_fragment" : "64; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "protocol"]
- },
- {
- "type" : "hexstr",
- "value" : "0x11"
- }
- ],
- "source_info" : {
- "filename" : "include/control/../define.p4",
- "line" : 129,
- "column" : 25,
- "source_fragment" : "17; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "src_addr"]
- },
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr20"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 263,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.src_addr = fabric_meta.spgw.tunnel_src_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "dst_addr"]
- },
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 264,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.dst_addr = fabric_meta.spgw.tunnel_dst_addr; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_ipv4", "hdr_checksum"]
- },
- {
- "type" : "hexstr",
- "value" : "0x0000"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 265,
- "column" : 8,
- "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
- }
- },
- {
- "op" : "add_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu_udp"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 267,
- "column" : 8,
- "source_fragment" : "gtpu_udp.setValid()"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_udp", "sport"]
- },
- {
- "type" : "hexstr",
- "value" : "0x0868"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 268,
- "column" : 8,
- "source_fragment" : "gtpu_udp.sport = 2152"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_udp", "dport"]
- },
- {
- "type" : "hexstr",
- "value" : "0x0868"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 269,
- "column" : 8,
- "source_fragment" : "gtpu_udp.dport = 2152"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_udp", "len"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "+",
- "left" : {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x0010"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffff"
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 270,
- "column" : 8,
- "source_fragment" : "gtpu_udp.len = fabric_meta.spgw.ipv4_len ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu_udp", "checksum"]
- },
- {
- "type" : "hexstr",
- "value" : "0x0000"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 272,
- "column" : 8,
- "source_fragment" : "gtpu_udp.checksum = 0"
- }
- },
- {
- "op" : "add_header",
- "parameters" : [
- {
- "type" : "header",
- "value" : "gtpu"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 275,
- "column" : 8,
- "source_fragment" : "gtpu.setValid()"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "version"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 276,
- "column" : 8,
- "source_fragment" : "gtpu.version = 0x01"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "pt"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 277,
- "column" : 8,
- "source_fragment" : "gtpu.pt = 0x01"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "spare"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 278,
- "column" : 8,
- "source_fragment" : "gtpu.spare = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "ex_flag"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 279,
- "column" : 8,
- "source_fragment" : "gtpu.ex_flag = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "seq_flag"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 280,
- "column" : 8,
- "source_fragment" : "gtpu.seq_flag = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "npdu_flag"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 281,
- "column" : 8,
- "source_fragment" : "gtpu.npdu_flag = 0"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "msgtype"]
- },
- {
- "type" : "hexstr",
- "value" : "0xff"
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 282,
- "column" : 8,
- "source_fragment" : "gtpu.msgtype = 0xff"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "msglen"]
- },
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len18"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 283,
- "column" : 8,
- "source_fragment" : "gtpu.msglen = fabric_meta.spgw.ipv4_len; ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["gtpu", "teid"]
- },
- {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_teid19"]
- }
- ],
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 284,
- "column" : 8,
- "source_fragment" : "gtpu.teid = fabric_meta.spgw.teid; ..."
- }
- }
- ]
- },
- {
"name" : "FabricEgress.egress_next.pop_mpls_if_present",
- "id" : 62,
+ "id" : 47,
"runtime_data" : [],
"primitives" : [
{
@@ -4569,7 +4309,7 @@
},
{
"name" : "FabricEgress.egress_next.set_mpls",
- "id" : 63,
+ "id" : 48,
"runtime_data" : [],
"primitives" : [
{
@@ -4677,7 +4417,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 126,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -4686,7 +4426,7 @@
},
{
"name" : "FabricEgress.egress_next.push_vlan",
- "id" : 64,
+ "id" : 49,
"runtime_data" : [],
"primitives" : [
{
@@ -4756,7 +4496,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 114,
+ "line" : 125,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -4784,7 +4524,7 @@
},
{
"name" : "FabricEgress.egress_next.pop_vlan",
- "id" : 65,
+ "id" : 50,
"runtime_data" : [],
"primitives" : [
{
@@ -4805,8 +4545,600 @@
]
},
{
- "name" : "act_22",
- "id" : 66,
+ "name" : "FabricEgress.spgw_egress.gtpu_encap",
+ "id" : 51,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "add_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu_ipv4"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 308,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.setValid()"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "version"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x04"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 309,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.version = 4"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "ihl"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x05"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 143,
+ "column" : 28,
+ "source_fragment" : "5; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "dscp"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 311,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.dscp = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "ecn"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 312,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.ecn = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "total_len"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "&",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "+",
+ "left" : {
+ "type" : "field",
+ "value" : ["ipv4", "total_len"]
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x0024"
+ }
+ }
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0xffff"
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 313,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.total_len = hdr.ipv4.total_len ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "identification"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x1513"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 315,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.identification = 0x1513"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "flags"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 316,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.flags = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "frag_offset"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0000"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 317,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.frag_offset = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "ttl"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x40"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 156,
+ "column" : 32,
+ "source_fragment" : "64; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "protocol"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x11"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/../define.p4",
+ "line" : 140,
+ "column" : 25,
+ "source_fragment" : "17; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "src_addr"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_addr23"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 320,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.src_addr = fabric_md.spgw.tunnel_src_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "dst_addr"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr24"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 321,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.dst_addr = fabric_md.spgw.tunnel_dst_addr; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_ipv4", "hdr_checksum"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0000"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 322,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_ipv4.hdr_checksum = 0"
+ }
+ },
+ {
+ "op" : "add_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "gtpu_udp"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 324,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_udp.setValid()"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_udp", "sport"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_tunnel_src_port22"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 325,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_udp.sport = fabric_md.spgw.tunnel_src_port; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_udp", "dport"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0868"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 326,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_udp.dport = 2152"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_udp", "len"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "&",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "+",
+ "left" : {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0x0010"
+ }
+ }
+ },
+ "right" : {
+ "type" : "hexstr",
+ "value" : "0xffff"
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 327,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_udp.len = fabric_md.spgw.ipv4_len ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["gtpu_udp", "checksum"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x0000"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 329,
+ "column" : 8,
+ "source_fragment" : "hdr.gtpu_udp.checksum = 0"
+ }
+ },
+ {
+ "op" : "add_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "outer_gtpu"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 332,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.setValid()"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "version"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x01"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 333,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.version = 0x01"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "pt"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x01"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 334,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.pt = 0x01"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "spare"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 335,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.spare = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "ex_flag"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 336,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.ex_flag = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "seq_flag"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 337,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.seq_flag = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "npdu_flag"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 338,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.npdu_flag = 0"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "msgtype"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0xff"
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 339,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.msgtype = 0xff"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "msglen"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 340,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.msglen = fabric_md.spgw.ipv4_len; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["outer_gtpu", "teid"]
+ },
+ {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 341,
+ "column" : 8,
+ "source_fragment" : "hdr.outer_gtpu.teid = fabric_md.spgw.teid; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_9",
+ "id" : 52,
"runtime_data" : [],
"primitives" : [
{
@@ -4822,8 +5154,8 @@
]
},
{
- "name" : "act_23",
- "id" : 67,
+ "name" : "act_10",
+ "id" : 53,
"runtime_data" : [],
"primitives" : [
{
@@ -4873,8 +5205,8 @@
]
},
{
- "name" : "act_24",
- "id" : 68,
+ "name" : "act_11",
+ "id" : 54,
"runtime_data" : [],
"primitives" : [
{
@@ -4895,8 +5227,8 @@
]
},
{
- "name" : "act_25",
- "id" : 69,
+ "name" : "act_12",
+ "id" : 55,
"runtime_data" : [],
"primitives" : [
{
@@ -4925,8 +5257,8 @@
]
},
{
- "name" : "act_26",
- "id" : 70,
+ "name" : "act_13",
+ "id" : 56,
"runtime_data" : [],
"primitives" : [
{
@@ -4955,8 +5287,8 @@
]
},
{
- "name" : "act_27",
- "id" : 71,
+ "name" : "act_14",
+ "id" : 57,
"runtime_data" : [],
"primitives" : [
{
@@ -4977,8 +5309,8 @@
]
},
{
- "name" : "act_28",
- "id" : 72,
+ "name" : "act_15",
+ "id" : 58,
"runtime_data" : [],
"primitives" : [
{
@@ -5026,8 +5358,8 @@
]
},
{
- "name" : "act_29",
- "id" : 73,
+ "name" : "act_16",
+ "id" : 59,
"runtime_data" : [],
"primitives" : [
{
@@ -5048,8 +5380,8 @@
]
},
{
- "name" : "act_30",
- "id" : 74,
+ "name" : "act_17",
+ "id" : 60,
"runtime_data" : [],
"primitives" : [
{
@@ -5097,8 +5429,74 @@
]
},
{
- "name" : "act_31",
- "id" : 75,
+ "name" : "act_18",
+ "id" : 61,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "spgw_egress_hasReturned"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ }
+ }
+ ],
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 345,
+ "column" : 46,
+ "source_fragment" : "return"
+ }
+ }
+ ]
+ },
+ {
+ "name" : "act_19",
+ "id" : 62,
+ "runtime_data" : [],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["scalars", "spgw_egress_hasReturned"]
+ },
+ {
+ "type" : "expression",
+ "value" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "b2d",
+ "left" : null,
+ "right" : {
+ "type" : "bool",
+ "value" : false
+ }
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name" : "act_20",
+ "id" : 63,
"runtime_data" : [],
"primitives" : [
{
@@ -5110,14 +5508,14 @@
},
{
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id22"]
+ "value" : ["scalars", "fabric_metadata_t._spgw_ctr_id25"]
}
],
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 288,
+ "filename" : "include/control/spgw.p4",
+ "line" : 346,
"column" : 8,
- "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
+ "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
}
}
]
@@ -5133,157 +5531,12 @@
"column" : 8,
"source_fragment" : "FabricIngress"
},
- "init_table" : "tbl_act",
+ "init_table" : "node_2",
"tables" : [
{
"name" : "tbl_act",
"id" : 0,
"source_info" : {
- "filename" : "fabric.p4",
- "line" : 62,
- "column" : 50,
- "source_fragment" : "hdr.gtpu_ipv4, hdr.gtpu_udp"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [38],
- "actions" : ["act_0"],
- "base_default_next" : "node_3",
- "next_tables" : {
- "act_0" : "node_3"
- },
- "default_entry" : {
- "action_id" : 38,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_0",
- "id" : 1,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 34,
- "column" : 32,
- "source_fragment" : "return"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [37],
- "actions" : ["act"],
- "base_default_next" : "node_5",
- "next_tables" : {
- "act" : "node_5"
- },
- "default_entry" : {
- "action_id" : 37,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_1",
- "id" : 2,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 35,
- "column" : 18,
- "source_fragment" : "= ipv4; ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [41],
- "actions" : ["act_3"],
- "base_default_next" : "node_7",
- "next_tables" : {
- "act_3" : "node_7"
- },
- "default_entry" : {
- "action_id" : 41,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_2",
- "id" : 3,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 39,
- "column" : 16,
- "source_fragment" : "="
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [39],
- "actions" : ["act_1"],
- "base_default_next" : "node_10",
- "next_tables" : {
- "act_1" : "node_10"
- },
- "default_entry" : {
- "action_id" : 39,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_3",
- "id" : 4,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 41,
- "column" : 12,
- "source_fragment" : "udp.setInvalid()"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [40],
- "actions" : ["act_2"],
- "base_default_next" : "node_10",
- "next_tables" : {
- "act_2" : "node_10"
- },
- "default_entry" : {
- "action_id" : 40,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_4",
- "id" : 5,
- "source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 25,
"column" : 42,
@@ -5296,14 +5549,450 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [42],
- "actions" : ["act_4"],
- "base_default_next" : "node_12",
+ "action_ids" : [36],
+ "actions" : ["act"],
+ "base_default_next" : "tbl_act_0",
"next_tables" : {
- "act_4" : "node_12"
+ "act" : "tbl_act_0"
},
"default_entry" : {
- "action_id" : 42,
+ "action_id" : 36,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_0",
+ "id" : 1,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [37],
+ "actions" : ["act_0"],
+ "base_default_next" : "FabricIngress.spgw_ingress.interface_lookup",
+ "next_tables" : {
+ "act_0" : "FabricIngress.spgw_ingress.interface_lookup"
+ },
+ "default_entry" : {
+ "action_id" : 37,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.interface_lookup",
+ "id" : 2,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 55,
+ "column" : 10,
+ "source_fragment" : "interface_lookup"
+ },
+ "key" : [
+ {
+ "match_type" : "lpm",
+ "name" : "ipv4_dst_addr",
+ "target" : ["ipv4", "dst_addr"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "gtpu_is_valid",
+ "target" : ["gtpu", "$valid$"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "lpm",
+ "type" : "simple",
+ "max_size" : 128,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [27],
+ "actions" : ["FabricIngress.spgw_ingress.set_source_iface"],
+ "base_default_next" : "node_6",
+ "next_tables" : {
+ "FabricIngress.spgw_ingress.set_source_iface" : "node_6"
+ },
+ "default_entry" : {
+ "action_id" : 27,
+ "action_const" : true,
+ "action_data" : ["0x0", "0x0", "0x1"],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_1",
+ "id" : 3,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 251,
+ "column" : 46,
+ "source_fragment" : "return"
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [38],
+ "actions" : ["act_1"],
+ "base_default_next" : "node_8",
+ "next_tables" : {
+ "act_1" : "node_8"
+ },
+ "default_entry" : {
+ "action_id" : 38,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
+ "id" : 4,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 93,
+ "column" : 10,
+ "source_fragment" : "uplink_pdr_lookup"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "tunnel_ipv4_dst",
+ "target" : ["ipv4", "dst_addr"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "teid",
+ "target" : ["gtpu", "teid"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "ue_addr",
+ "target" : ["inner_ipv4", "src_addr"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [29],
+ "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
+ "base_default_next" : "tbl_act_2",
+ "next_tables" : {
+ "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_2"
+ },
+ "default_entry" : {
+ "action_id" : 29,
+ "action_const" : true,
+ "action_data" : ["0x0", "0x0", "0x0"],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
+ "id" : 5,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 82,
+ "column" : 10,
+ "source_fragment" : "downlink_pdr_lookup"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "ue_addr",
+ "target" : ["ipv4", "dst_addr"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [28],
+ "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
+ "base_default_next" : "tbl_act_2",
+ "next_tables" : {
+ "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_2"
+ },
+ "default_entry" : {
+ "action_id" : 28,
+ "action_const" : true,
+ "action_data" : ["0x0", "0x0", "0x0"],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_2",
+ "id" : 6,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 265,
+ "column" : 8,
+ "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [39],
+ "actions" : ["act_2"],
+ "base_default_next" : "node_13",
+ "next_tables" : {
+ "act_2" : "node_13"
+ },
+ "default_entry" : {
+ "action_id" : 39,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.decap_gtpu",
+ "id" : 7,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 221,
+ "column" : 10,
+ "source_fragment" : "decap_gtpu"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "hdr.inner_tcp.$valid$",
+ "target" : ["inner_tcp", "$valid$"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "hdr.inner_udp.$valid$",
+ "target" : ["inner_udp", "$valid$"],
+ "mask" : null
+ },
+ {
+ "match_type" : "exact",
+ "name" : "hdr.inner_icmp.$valid$",
+ "target" : ["inner_icmp", "$valid$"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [32, 33, 34, 35],
+ "actions" : ["FabricIngress.spgw_ingress.decap_inner_tcp", "FabricIngress.spgw_ingress.decap_inner_udp", "FabricIngress.spgw_ingress.decap_inner_icmp", "FabricIngress.spgw_ingress.decap_inner_unknown"],
+ "base_default_next" : "FabricIngress.spgw_ingress.far_lookup",
+ "next_tables" : {
+ "FabricIngress.spgw_ingress.decap_inner_tcp" : "FabricIngress.spgw_ingress.far_lookup",
+ "FabricIngress.spgw_ingress.decap_inner_udp" : "FabricIngress.spgw_ingress.far_lookup",
+ "FabricIngress.spgw_ingress.decap_inner_icmp" : "FabricIngress.spgw_ingress.far_lookup",
+ "FabricIngress.spgw_ingress.decap_inner_unknown" : "FabricIngress.spgw_ingress.far_lookup"
+ },
+ "default_entry" : {
+ "action_id" : 35,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ },
+ "entries" : [
+ {
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 235,
+ "column" : 12,
+ "source_fragment" : "(true, false, false) : decap_inner_tcp()"
+ },
+ "match_key" : [
+ {
+ "match_type" : "exact",
+ "key" : "0x01"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ }
+ ],
+ "action_entry" : {
+ "action_id" : 32,
+ "action_data" : []
+ },
+ "priority" : 1
+ },
+ {
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 236,
+ "column" : 12,
+ "source_fragment" : "(false, true, false) : decap_inner_udp()"
+ },
+ "match_key" : [
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x01"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ }
+ ],
+ "action_entry" : {
+ "action_id" : 33,
+ "action_data" : []
+ },
+ "priority" : 2
+ },
+ {
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 237,
+ "column" : 12,
+ "source_fragment" : "(false, false, true) : decap_inner_icmp()"
+ },
+ "match_key" : [
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x00"
+ },
+ {
+ "match_type" : "exact",
+ "key" : "0x01"
+ }
+ ],
+ "action_entry" : {
+ "action_id" : 34,
+ "action_data" : []
+ },
+ "priority" : 3
+ }
+ ]
+ },
+ {
+ "name" : "FabricIngress.spgw_ingress.far_lookup",
+ "id" : 8,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 165,
+ "column" : 10,
+ "source_fragment" : "far_lookup"
+ },
+ "key" : [
+ {
+ "match_type" : "exact",
+ "name" : "far_id",
+ "target" : ["scalars", "fabric_metadata_t._spgw_far_id26"],
+ "mask" : null
+ }
+ ],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 2048,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [30, 31],
+ "actions" : ["FabricIngress.spgw_ingress.load_normal_far_attributes", "FabricIngress.spgw_ingress.load_tunnel_far_attributes"],
+ "base_default_next" : "node_16",
+ "next_tables" : {
+ "FabricIngress.spgw_ingress.load_normal_far_attributes" : "node_16",
+ "FabricIngress.spgw_ingress.load_tunnel_far_attributes" : "node_16"
+ },
+ "default_entry" : {
+ "action_id" : 30,
+ "action_const" : true,
+ "action_data" : ["0x1", "0x1"],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_3",
+ "id" : 9,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 282,
+ "column" : 38,
+ "source_fragment" : "= true; ..."
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [40],
+ "actions" : ["act_3"],
+ "base_default_next" : "tbl_act_4",
+ "next_tables" : {
+ "act_3" : "tbl_act_4"
+ },
+ "default_entry" : {
+ "action_id" : 40,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_4",
+ "id" : 10,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 291,
+ "column" : 32,
+ "source_fragment" : "="
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [41],
+ "actions" : ["act_4"],
+ "base_default_next" : "node_19",
+ "next_tables" : {
+ "act_4" : "node_19"
+ },
+ "default_entry" : {
+ "action_id" : 41,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5311,7 +6000,7 @@
},
{
"name" : "tbl_act_5",
- "id" : 6,
+ "id" : 11,
"source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 111,
@@ -5325,14 +6014,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [43],
+ "action_ids" : [42],
"actions" : ["act_5"],
- "base_default_next" : "node_14",
+ "base_default_next" : "node_21",
"next_tables" : {
- "act_5" : "node_14"
+ "act_5" : "node_21"
},
"default_entry" : {
- "action_id" : 43,
+ "action_id" : 42,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5340,7 +6029,7 @@
},
{
"name" : "tbl_act_6",
- "id" : 7,
+ "id" : 12,
"source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 127,
@@ -5354,14 +6043,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [44],
+ "action_ids" : [43],
"actions" : ["act_6"],
"base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
"next_tables" : {
"act_6" : "FabricIngress.filtering.ingress_port_vlan"
},
"default_entry" : {
- "action_id" : 44,
+ "action_id" : 43,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5369,7 +6058,7 @@
},
{
"name" : "FabricIngress.filtering.ingress_port_vlan",
- "id" : 8,
+ "id" : 13,
"source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 53,
@@ -5402,7 +6091,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [17, 18, 19],
+ "action_ids" : [7, 8, 9],
"actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
"base_default_next" : "FabricIngress.filtering.fwd_classifier",
"next_tables" : {
@@ -5411,7 +6100,7 @@
"FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 17,
+ "action_id" : 7,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -5419,7 +6108,7 @@
},
{
"name" : "FabricIngress.filtering.fwd_classifier",
- "id" : 9,
+ "id" : 14,
"source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 92,
@@ -5458,673 +6147,22 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [20],
+ "action_ids" : [10],
"actions" : ["FabricIngress.filtering.set_forwarding_type"],
- "base_default_next" : "tbl_act_7",
+ "base_default_next" : "node_25",
"next_tables" : {
- "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
+ "FabricIngress.filtering.set_forwarding_type" : "node_25"
},
"default_entry" : {
- "action_id" : 20,
+ "action_id" : 10,
"action_const" : true,
"action_data" : ["0x0"],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_7",
- "id" : 10,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [53],
- "actions" : ["act_15"],
- "base_default_next" : "node_19",
- "next_tables" : {
- "act_15" : "node_19"
- },
- "default_entry" : {
- "action_id" : 53,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.uplink_filter_table",
- "id" : 11,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 84,
- "column" : 10,
- "source_fragment" : "uplink_filter_table"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "gtp_ipv4_dst",
- "target" : ["gtpu_ipv4", "dst_addr"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [1],
- "actions" : ["nop"],
- "base_default_next" : null,
- "next_tables" : {
- "__HIT__" : "tbl_act_8",
- "__MISS__" : "tbl_act_9"
- },
- "default_entry" : {
- "action_id" : 1,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_8",
- "id" : 12,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [45],
- "actions" : ["act_7"],
- "base_default_next" : "node_23",
- "next_tables" : {
- "act_7" : "node_23"
- },
- "default_entry" : {
- "action_id" : 45,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_9",
- "id" : 13,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [46],
- "actions" : ["act_8"],
- "base_default_next" : "node_23",
- "next_tables" : {
- "act_8" : "node_23"
- },
- "default_entry" : {
- "action_id" : 46,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_10",
- "id" : 14,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 187,
- "column" : 16,
- "source_fragment" : "mark_to_drop(standard_metadata)"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [47],
- "actions" : ["act_9"],
- "base_default_next" : "tbl_act_11",
- "next_tables" : {
- "act_9" : "tbl_act_11"
- },
- "default_entry" : {
- "action_id" : 47,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_11",
- "id" : 15,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 189,
- "column" : 39,
- "source_fragment" : "="
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [48],
- "actions" : ["act_10"],
- "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
- "next_tables" : {
- "act_10" : "tbl_spgw_ingress_gtpu_decap"
- },
- "default_entry" : {
- "action_id" : 48,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_spgw_ingress_gtpu_decap",
- "id" : 16,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 190,
- "column" : 12,
- "source_fragment" : "gtpu_decap()"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [11],
- "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
- "base_default_next" : "node_33",
- "next_tables" : {
- "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
- },
- "default_entry" : {
- "action_id" : 11,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.downlink_filter_table",
- "id" : 17,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 73,
- "column" : 10,
- "source_fragment" : "downlink_filter_table"
- },
- "key" : [
- {
- "match_type" : "lpm",
- "name" : "ipv4_prefix",
- "target" : ["ipv4", "dst_addr"],
- "mask" : null
- }
- ],
- "match_type" : "lpm",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [0],
- "actions" : ["nop"],
- "base_default_next" : null,
- "next_tables" : {
- "__HIT__" : "tbl_act_12",
- "__MISS__" : "tbl_act_13"
- },
- "default_entry" : {
- "action_id" : 0,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_12",
- "id" : 18,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [49],
- "actions" : ["act_11"],
- "base_default_next" : "node_30",
- "next_tables" : {
- "act_11" : "node_30"
- },
- "default_entry" : {
- "action_id" : 49,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_13",
- "id" : 19,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [50],
- "actions" : ["act_12"],
- "base_default_next" : "node_30",
- "next_tables" : {
- "act_12" : "node_30"
- },
- "default_entry" : {
- "action_id" : 50,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_14",
- "id" : 20,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 192,
- "column" : 39,
- "source_fragment" : "="
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [51],
- "actions" : ["act_13"],
- "base_default_next" : "node_33",
- "next_tables" : {
- "act_13" : "node_33"
- },
- "default_entry" : {
- "action_id" : 51,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_15",
- "id" : 21,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 194,
- "column" : 39,
- "source_fragment" : "= SPGW_DIR_UNKNOWN; ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [52],
- "actions" : ["act_14"],
- "base_default_next" : "node_33",
- "next_tables" : {
- "act_14" : "node_33"
- },
- "default_entry" : {
- "action_id" : 52,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
- "id" : 22,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 111,
- "column" : 10,
- "source_fragment" : "uplink_pdr_lookup"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "tunnel_ipv4_dst",
- "target" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"],
- "mask" : null
- },
- {
- "match_type" : "exact",
- "name" : "teid",
- "target" : ["scalars", "fabric_metadata_t._spgw_teid19"],
- "mask" : null
- },
- {
- "match_type" : "exact",
- "name" : "ue_addr",
- "target" : ["ipv4", "src_addr"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [13, 10],
- "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes", "NoAction"],
- "base_default_next" : "node_39",
- "next_tables" : {
- "FabricIngress.spgw_ingress.set_pdr_attributes" : "node_39",
- "NoAction" : "node_39"
- },
- "default_entry" : {
- "action_id" : 10,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
- "id" : 23,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 103,
- "column" : 10,
- "source_fragment" : "downlink_pdr_lookup"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "ue_addr",
- "target" : ["ipv4", "dst_addr"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [12, 9],
- "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes", "NoAction"],
- "base_default_next" : "node_39",
- "next_tables" : {
- "FabricIngress.spgw_ingress.set_pdr_attributes" : "node_39",
- "NoAction" : "node_39"
- },
- "default_entry" : {
- "action_id" : 9,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "tbl_act_16",
- "id" : 24,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 206,
- "column" : 12,
- "source_fragment" : "return"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [54],
- "actions" : ["act_16"],
- "base_default_next" : "node_39",
- "next_tables" : {
- "act_16" : "node_39"
- },
- "default_entry" : {
- "action_id" : 54,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.flexible_pdr_lookup",
- "id" : 25,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 123,
- "column" : 10,
- "source_fragment" : "flexible_pdr_lookup"
- },
- "key" : [
- {
- "match_type" : "ternary",
- "name" : "spgw_direction",
- "target" : ["scalars", "fabric_metadata_t._spgw_direction17"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "tunnel_ipv4_dst",
- "target" : ["scalars", "fabric_metadata_t._spgw_tunnel_dst_addr21"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "teid",
- "target" : ["scalars", "fabric_metadata_t._spgw_teid19"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "ipv4_src",
- "target" : ["ipv4", "src_addr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "ipv4_dst",
- "target" : ["ipv4", "dst_addr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "ip_proto",
- "target" : ["ipv4", "protocol"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "l4_sport",
- "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "name" : "l4_dport",
- "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
- "mask" : null
- }
- ],
- "match_type" : "ternary",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [14],
- "actions" : ["FabricIngress.spgw_ingress.set_pdr_attributes"],
- "base_default_next" : "tbl_act_17",
- "next_tables" : {
- "FabricIngress.spgw_ingress.set_pdr_attributes" : "tbl_act_17"
- },
- "default_entry" : {
- "action_id" : 14,
- "action_const" : true,
- "action_data" : ["0x0", "0x0"],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_17",
- "id" : 26,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 213,
- "column" : 8,
- "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [55],
- "actions" : ["act_17"],
- "base_default_next" : "FabricIngress.spgw_ingress.far_lookup",
- "next_tables" : {
- "act_17" : "FabricIngress.spgw_ingress.far_lookup"
- },
- "default_entry" : {
- "action_id" : 55,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "FabricIngress.spgw_ingress.far_lookup",
- "id" : 27,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 168,
- "column" : 10,
- "source_fragment" : "far_lookup"
- },
- "key" : [
- {
- "match_type" : "exact",
- "name" : "far_id",
- "target" : ["scalars", "fabric_metadata_t._spgw_far_id23"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [15, 16],
- "actions" : ["FabricIngress.spgw_ingress.load_normal_far_attributes", "FabricIngress.spgw_ingress.load_tunnel_far_attributes"],
- "base_default_next" : "node_44",
- "next_tables" : {
- "FabricIngress.spgw_ingress.load_normal_far_attributes" : "node_44",
- "FabricIngress.spgw_ingress.load_tunnel_far_attributes" : "node_44"
- },
- "default_entry" : {
- "action_id" : 15,
- "action_const" : true,
- "action_data" : ["0x1", "0x0"],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_18",
- "id" : 28,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 223,
- "column" : 40,
- "source_fragment" : "= true; ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [56],
- "actions" : ["act_18"],
- "base_default_next" : "tbl_act_19",
- "next_tables" : {
- "act_18" : "tbl_act_19"
- },
- "default_entry" : {
- "action_id" : 56,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_19",
- "id" : 29,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 232,
- "column" : 34,
- "source_fragment" : "="
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [57],
- "actions" : ["act_19"],
- "base_default_next" : "node_47",
- "next_tables" : {
- "act_19" : "node_47"
- },
- "default_entry" : {
- "action_id" : 57,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
"name" : "FabricIngress.forwarding.bridging",
- "id" : 30,
+ "id" : 15,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 46,
@@ -6151,7 +6189,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [21, 2],
+ "action_ids" : [11, 0],
"actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
@@ -6159,7 +6197,7 @@
"nop" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 2,
+ "action_id" : 0,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6167,7 +6205,7 @@
},
{
"name" : "FabricIngress.forwarding.mpls",
- "id" : 31,
+ "id" : 16,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 71,
@@ -6188,7 +6226,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [22, 3],
+ "action_ids" : [12, 1],
"actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
@@ -6196,7 +6234,7 @@
"nop" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 3,
+ "action_id" : 1,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6204,7 +6242,7 @@
},
{
"name" : "FabricIngress.forwarding.routing_v4",
- "id" : 32,
+ "id" : 17,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 108,
@@ -6225,7 +6263,7 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [23, 24, 4],
+ "action_ids" : [13, 14, 2],
"actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
"base_default_next" : "FabricIngress.acl.acl",
"next_tables" : {
@@ -6234,7 +6272,7 @@
"nop" : "FabricIngress.acl.acl"
},
"default_entry" : {
- "action_id" : 4,
+ "action_id" : 2,
"action_const" : false,
"action_data" : [],
"action_entry_const" : false
@@ -6242,7 +6280,7 @@
},
{
"name" : "FabricIngress.acl.acl",
- "id" : 33,
+ "id" : 18,
"source_info" : {
"filename" : "include/control/acl.p4",
"line" : 60,
@@ -6329,18 +6367,18 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [25, 26, 27, 28, 29],
+ "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_55",
+ "base_default_next" : "node_33",
"next_tables" : {
- "FabricIngress.acl.set_next_id_acl" : "node_55",
- "FabricIngress.acl.punt_to_cpu" : "node_55",
- "FabricIngress.acl.set_clone_session_id" : "node_55",
- "FabricIngress.acl.drop" : "node_55",
- "FabricIngress.acl.nop_acl" : "node_55"
+ "FabricIngress.acl.set_next_id_acl" : "node_33",
+ "FabricIngress.acl.punt_to_cpu" : "node_33",
+ "FabricIngress.acl.set_clone_session_id" : "node_33",
+ "FabricIngress.acl.drop" : "node_33",
+ "FabricIngress.acl.nop_acl" : "node_33"
},
"default_entry" : {
- "action_id" : 29,
+ "action_id" : 19,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6348,7 +6386,7 @@
},
{
"name" : "FabricIngress.next.xconnect",
- "id" : 34,
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 119,
@@ -6375,7 +6413,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31, 32, 6],
+ "action_ids" : [21, 22, 4],
"actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
"base_default_next" : "FabricIngress.next.hashed",
"next_tables" : {
@@ -6384,7 +6422,7 @@
"nop" : "FabricIngress.next.hashed"
},
"default_entry" : {
- "action_id" : 6,
+ "action_id" : 4,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6392,7 +6430,7 @@
},
{
"name" : "FabricIngress.next.hashed",
- "id" : 35,
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 202,
@@ -6414,7 +6452,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33, 34, 35, 7],
+ "action_ids" : [23, 24, 25, 5],
"actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
"base_default_next" : "FabricIngress.next.multicast",
"next_tables" : {
@@ -6426,7 +6464,7 @@
},
{
"name" : "FabricIngress.next.multicast",
- "id" : 36,
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 236,
@@ -6447,7 +6485,7 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36, 8],
+ "action_ids" : [26, 6],
"actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
"base_default_next" : "FabricIngress.next.next_vlan",
"next_tables" : {
@@ -6455,7 +6493,7 @@
"nop" : "FabricIngress.next.next_vlan"
},
"default_entry" : {
- "action_id" : 8,
+ "action_id" : 6,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6463,7 +6501,7 @@
},
{
"name" : "FabricIngress.next.next_vlan",
- "id" : 37,
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 86,
@@ -6484,23 +6522,23 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [30, 5],
+ "action_ids" : [20, 3],
"actions" : ["FabricIngress.next.set_vlan", "nop"],
- "base_default_next" : "node_60",
+ "base_default_next" : "node_38",
"next_tables" : {
- "FabricIngress.next.set_vlan" : "node_60",
- "nop" : "node_60"
+ "FabricIngress.next.set_vlan" : "node_38",
+ "nop" : "node_38"
},
"default_entry" : {
- "action_id" : 5,
+ "action_id" : 3,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_20",
- "id" : 38,
+ "name" : "tbl_act_7",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 31,
@@ -6514,22 +6552,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [58],
- "actions" : ["act_20"],
- "base_default_next" : "node_62",
+ "action_ids" : [44],
+ "actions" : ["act_7"],
+ "base_default_next" : "node_40",
"next_tables" : {
- "act_20" : "node_62"
+ "act_7" : "node_40"
},
"default_entry" : {
- "action_id" : 58,
+ "action_id" : 44,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_21",
- "id" : 39,
+ "name" : "tbl_act_8",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 34,
@@ -6543,14 +6581,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [59],
- "actions" : ["act_21"],
+ "action_ids" : [45],
+ "actions" : ["act_8"],
"base_default_next" : null,
"next_tables" : {
- "act_21" : null
+ "act_8" : null
},
"default_entry" : {
- "action_id" : 59,
+ "action_id" : 45,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -6597,86 +6635,9 @@
],
"conditionals" : [
{
- "name" : "node_3",
+ "name" : "node_2",
"id" : 0,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 34,
- "column" : 12,
- "source_fragment" : "! is_gtpu_encapped"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "not",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["gtpu", "$valid$"]
- }
- }
- }
- }
- },
- "true_next" : "tbl_act_0",
- "false_next" : "node_5"
- },
- {
- "name" : "node_5",
- "id" : 1,
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "not",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "spgw_normalizer_hasReturned"]
- }
- }
- }
- }
- },
- "true_next" : "tbl_act_1",
- "false_next" : "node_10"
- },
- {
- "name" : "node_7",
- "id" : 2,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 38,
- "column" : 12,
- "source_fragment" : "inner_udp.isValid()"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["inner_udp", "$valid$"]
- }
- }
- },
- "true_next" : "tbl_act_2",
- "false_next" : "tbl_act_3"
- },
- {
- "name" : "node_10",
- "id" : 3,
- "source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 24,
"column" : 12,
@@ -6693,13 +6654,159 @@
}
}
},
- "true_next" : "tbl_act_4",
- "false_next" : "node_12"
+ "true_next" : "tbl_act",
+ "false_next" : "tbl_act_0"
},
{
- "name" : "node_12",
+ "name" : "node_6",
+ "id" : 1,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 251,
+ "column" : 12,
+ "source_fragment" : "fabric_md.spgw.skip_spgw == true"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "==",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
+ }
+ }
+ },
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ },
+ "true_next" : "tbl_act_1",
+ "false_next" : "node_8"
+ },
+ {
+ "name" : "node_8",
+ "id" : 2,
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "spgw_ingress_hasReturned"]
+ }
+ }
+ }
+ }
+ },
+ "true_next" : "node_9",
+ "false_next" : "node_19"
+ },
+ {
+ "name" : "node_9",
+ "id" : 3,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 255,
+ "column" : 12,
+ "source_fragment" : "hdr.gtpu.isValid()"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["gtpu", "$valid$"]
+ }
+ }
+ },
+ "true_next" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
+ "false_next" : "FabricIngress.spgw_ingress.downlink_pdr_lookup"
+ },
+ {
+ "name" : "node_13",
"id" : 4,
"source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 268,
+ "column" : 12,
+ "source_fragment" : "fabric_md.spgw.needs_gtpu_decap == true"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "==",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_decap33"]
+ }
+ }
+ },
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ },
+ "true_next" : "FabricIngress.spgw_ingress.decap_gtpu",
+ "false_next" : "FabricIngress.spgw_ingress.far_lookup"
+ },
+ {
+ "name" : "node_16",
+ "id" : 5,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 279,
+ "column" : 12,
+ "source_fragment" : "fabric_md.spgw.far_dropped == true"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "==",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped30"]
+ }
+ }
+ },
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ },
+ "true_next" : "tbl_act_3",
+ "false_next" : "tbl_act_4"
+ },
+ {
+ "name" : "node_19",
+ "id" : 6,
+ "source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 110,
"column" : 12,
@@ -6717,11 +6824,11 @@
}
},
"true_next" : "tbl_act_5",
- "false_next" : "node_14"
+ "false_next" : "node_21"
},
{
- "name" : "node_14",
- "id" : 5,
+ "name" : "node_21",
+ "id" : 7,
"source_info" : {
"filename" : "include/control/filtering.p4",
"line" : 122,
@@ -6750,247 +6857,11 @@
"false_next" : "FabricIngress.filtering.ingress_port_vlan"
},
{
- "name" : "node_19",
- "id" : 6,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 181,
- "column" : 12,
- "source_fragment" : "gtpu.isValid()"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["gtpu", "$valid$"]
- }
- }
- },
- "true_next" : "FabricIngress.spgw_ingress.uplink_filter_table",
- "false_next" : "FabricIngress.spgw_ingress.downlink_filter_table"
- },
- {
- "name" : "node_23",
- "id" : 7,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 185,
- "column" : 16,
- "source_fragment" : "!uplink_filter_table.apply().hit"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "not",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp"]
- }
- }
- }
- }
- },
- "true_next" : "tbl_act_10",
- "false_next" : "tbl_act_11"
- },
- {
- "name" : "node_30",
+ "name" : "node_25",
"id" : 8,
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_tmp_0"]
- }
- }
- },
- "true_next" : "tbl_act_14",
- "false_next" : "tbl_act_15"
- },
- {
- "name" : "node_33",
- "id" : 9,
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "not",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_hasReturned"]
- }
- }
- }
- }
- },
- "true_next" : "node_34",
- "false_next" : "node_39"
- },
- {
- "name" : "node_34",
- "id" : 10,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 201,
- "column" : 12,
- "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_UPLINK"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "==",
- "left" : {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x01"
- }
- }
- },
- "true_next" : "FabricIngress.spgw_ingress.uplink_pdr_lookup",
- "false_next" : "node_36"
- },
- {
- "name" : "node_36",
- "id" : 11,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 203,
- "column" : 19,
- "source_fragment" : "fabric_meta.spgw.direction == SPGW_DIR_DOWNLINK"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "==",
- "left" : {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_direction17"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x02"
- }
- }
- },
- "true_next" : "FabricIngress.spgw_ingress.downlink_pdr_lookup",
- "false_next" : "tbl_act_16"
- },
- {
- "name" : "node_39",
- "id" : 12,
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "not",
- "left" : null,
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "spgw_ingress_hasReturned"]
- }
- }
- }
- }
- },
- "true_next" : "node_40",
- "false_next" : "node_47"
- },
- {
- "name" : "node_40",
- "id" : 13,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 209,
- "column" : 12,
- "source_fragment" : "fabric_meta.spgw.pdr_hit == false"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "==",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_pdr_hit24"]
- }
- }
- },
- "right" : {
- "type" : "bool",
- "value" : false
- }
- }
- },
- "true_next" : "FabricIngress.spgw_ingress.flexible_pdr_lookup",
- "false_next" : "tbl_act_17"
- },
- {
- "name" : "node_44",
- "id" : 14,
- "source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 220,
- "column" : 12,
- "source_fragment" : "fabric_meta.spgw.far_dropped == true"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "==",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "d2b",
- "left" : null,
- "right" : {
- "type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_far_dropped25"]
- }
- }
- },
- "right" : {
- "type" : "bool",
- "value" : true
- }
- }
- },
- "true_next" : "tbl_act_18",
- "false_next" : "tbl_act_19"
- },
- {
- "name" : "node_47",
- "id" : 15,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 71,
+ "line" : 69,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_forwarding == false"
},
@@ -7015,12 +6886,12 @@
}
}
},
- "true_next" : "node_48",
+ "true_next" : "node_26",
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_48",
- "id" : 16,
+ "name" : "node_26",
+ "id" : 9,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 150,
@@ -7042,11 +6913,11 @@
}
},
"true_next" : "FabricIngress.forwarding.bridging",
- "false_next" : "node_50"
+ "false_next" : "node_28"
},
{
- "name" : "node_50",
- "id" : 17,
+ "name" : "node_28",
+ "id" : 10,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 151,
@@ -7068,11 +6939,11 @@
}
},
"true_next" : "FabricIngress.forwarding.mpls",
- "false_next" : "node_52"
+ "false_next" : "node_30"
},
{
- "name" : "node_52",
- "id" : 18,
+ "name" : "node_30",
+ "id" : 11,
"source_info" : {
"filename" : "include/control/forwarding.p4",
"line" : 152,
@@ -7097,11 +6968,11 @@
"false_next" : "FabricIngress.acl.acl"
},
{
- "name" : "node_55",
- "id" : 19,
+ "name" : "node_33",
+ "id" : 12,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 75,
+ "line" : 73,
"column" : 12,
"source_fragment" : "fabric_metadata.skip_next == false"
},
@@ -7130,8 +7001,8 @@
"true_next" : "FabricIngress.next.xconnect"
},
{
- "name" : "node_60",
- "id" : 20,
+ "name" : "node_38",
+ "id" : 13,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 30,
@@ -7152,12 +7023,12 @@
}
}
},
- "true_next" : "tbl_act_20",
- "false_next" : "node_62"
+ "true_next" : "tbl_act_7",
+ "false_next" : "node_40"
},
{
- "name" : "node_62",
- "id" : 21,
+ "name" : "node_40",
+ "id" : 14,
"source_info" : {
"filename" : "include/control/port_counter.p4",
"line" : 33,
@@ -7179,7 +7050,7 @@
}
},
"false_next" : null,
- "true_next" : "tbl_act_21"
+ "true_next" : "tbl_act_8"
}
]
},
@@ -7188,15 +7059,15 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 93,
+ "line" : 91,
"column" : 8,
"source_fragment" : "FabricEgress"
},
- "init_table" : "node_66",
+ "init_table" : "node_44",
"tables" : [
{
- "name" : "tbl_act_22",
- "id" : 40,
+ "name" : "tbl_act_9",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 41,
@@ -7210,22 +7081,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [66],
- "actions" : ["act_22"],
- "base_default_next" : "node_68",
+ "action_ids" : [52],
+ "actions" : ["act_9"],
+ "base_default_next" : "node_46",
"next_tables" : {
- "act_22" : "node_68"
+ "act_9" : "node_46"
},
"default_entry" : {
- "action_id" : 66,
+ "action_id" : 52,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_23",
- "id" : 41,
+ "name" : "tbl_act_10",
+ "id" : 26,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 44,
@@ -7239,22 +7110,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [67],
- "actions" : ["act_23"],
- "base_default_next" : "node_70",
+ "action_ids" : [53],
+ "actions" : ["act_10"],
+ "base_default_next" : "node_48",
"next_tables" : {
- "act_23" : "node_70"
+ "act_10" : "node_48"
},
"default_entry" : {
- "action_id" : 67,
+ "action_id" : 53,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_24",
- "id" : 42,
+ "name" : "tbl_act_11",
+ "id" : 27,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 337,
@@ -7268,14 +7139,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [68],
- "actions" : ["act_24"],
- "base_default_next" : "node_72",
+ "action_ids" : [54],
+ "actions" : ["act_11"],
+ "base_default_next" : "node_50",
"next_tables" : {
- "act_24" : "node_72"
+ "act_11" : "node_50"
},
"default_entry" : {
- "action_id" : 68,
+ "action_id" : 54,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7283,7 +7154,7 @@
},
{
"name" : "tbl_egress_next_pop_mpls_if_present",
- "id" : 43,
+ "id" : 28,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 341,
@@ -7297,14 +7168,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [62],
+ "action_ids" : [47],
"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" : 62,
+ "action_id" : 47,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7312,7 +7183,7 @@
},
{
"name" : "tbl_egress_next_set_mpls",
- "id" : 44,
+ "id" : 29,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 343,
@@ -7326,14 +7197,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [63],
+ "action_ids" : [48],
"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" : 63,
+ "action_id" : 48,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7341,7 +7212,7 @@
},
{
"name" : "FabricEgress.egress_next.egress_vlan",
- "id" : 45,
+ "id" : 30,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 320,
@@ -7368,23 +7239,23 @@
"with_counters" : true,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [65, 60],
+ "action_ids" : [50, 46],
"actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
"base_default_next" : null,
"next_tables" : {
- "__HIT__" : "tbl_act_25",
- "__MISS__" : "tbl_act_26"
+ "__HIT__" : "tbl_act_12",
+ "__MISS__" : "tbl_act_13"
},
"default_entry" : {
- "action_id" : 60,
+ "action_id" : 46,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_25",
- "id" : 46,
+ "name" : "tbl_act_12",
+ "id" : 31,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -7392,22 +7263,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [69],
- "actions" : ["act_25"],
- "base_default_next" : "node_79",
+ "action_ids" : [55],
+ "actions" : ["act_12"],
+ "base_default_next" : "node_57",
"next_tables" : {
- "act_25" : "node_79"
+ "act_12" : "node_57"
},
"default_entry" : {
- "action_id" : 69,
+ "action_id" : 55,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_26",
- "id" : 47,
+ "name" : "tbl_act_13",
+ "id" : 32,
"key" : [],
"match_type" : "exact",
"type" : "simple",
@@ -7415,14 +7286,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [70],
- "actions" : ["act_26"],
- "base_default_next" : "node_79",
+ "action_ids" : [56],
+ "actions" : ["act_13"],
+ "base_default_next" : "node_57",
"next_tables" : {
- "act_26" : "node_79"
+ "act_13" : "node_57"
},
"default_entry" : {
- "action_id" : 70,
+ "action_id" : 56,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7430,7 +7301,7 @@
},
{
"name" : "tbl_egress_next_push_vlan",
- "id" : 48,
+ "id" : 33,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 360,
@@ -7444,22 +7315,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [64],
+ "action_ids" : [49],
"actions" : ["FabricEgress.egress_next.push_vlan"],
- "base_default_next" : "node_82",
+ "base_default_next" : "node_60",
"next_tables" : {
- "FabricEgress.egress_next.push_vlan" : "node_82"
+ "FabricEgress.egress_next.push_vlan" : "node_60"
},
"default_entry" : {
- "action_id" : 64,
+ "action_id" : 49,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_27",
- "id" : 49,
+ "name" : "tbl_act_14",
+ "id" : 34,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 369,
@@ -7473,22 +7344,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [72],
- "actions" : ["act_28"],
- "base_default_next" : "node_84",
+ "action_ids" : [58],
+ "actions" : ["act_15"],
+ "base_default_next" : "node_62",
"next_tables" : {
- "act_28" : "node_84"
+ "act_15" : "node_62"
},
"default_entry" : {
- "action_id" : 72,
+ "action_id" : 58,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_28",
- "id" : 50,
+ "name" : "tbl_act_15",
+ "id" : 35,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 370,
@@ -7502,22 +7373,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [71],
- "actions" : ["act_27"],
- "base_default_next" : "tbl_act_31",
+ "action_ids" : [57],
+ "actions" : ["act_14"],
+ "base_default_next" : "tbl_act_18",
"next_tables" : {
- "act_27" : "tbl_act_31"
+ "act_14" : "tbl_act_18"
},
"default_entry" : {
- "action_id" : 71,
+ "action_id" : 57,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_29",
- "id" : 51,
+ "name" : "tbl_act_16",
+ "id" : 36,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 373,
@@ -7531,22 +7402,22 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [74],
- "actions" : ["act_30"],
- "base_default_next" : "node_88",
+ "action_ids" : [60],
+ "actions" : ["act_17"],
+ "base_default_next" : "node_66",
"next_tables" : {
- "act_30" : "node_88"
+ "act_17" : "node_66"
},
"default_entry" : {
- "action_id" : 74,
+ "action_id" : 60,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_30",
- "id" : 52,
+ "name" : "tbl_act_17",
+ "id" : 37,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 374,
@@ -7560,27 +7431,50 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [73],
- "actions" : ["act_29"],
- "base_default_next" : "tbl_act_31",
+ "action_ids" : [59],
+ "actions" : ["act_16"],
+ "base_default_next" : "tbl_act_18",
"next_tables" : {
- "act_29" : "tbl_act_31"
+ "act_16" : "tbl_act_18"
},
"default_entry" : {
- "action_id" : 73,
+ "action_id" : 59,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
}
},
{
- "name" : "tbl_act_31",
- "id" : 53,
+ "name" : "tbl_act_18",
+ "id" : 38,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [62],
+ "actions" : ["act_19"],
+ "base_default_next" : "node_69",
+ "next_tables" : {
+ "act_19" : "node_69"
+ },
+ "default_entry" : {
+ "action_id" : 62,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_19",
+ "id" : 39,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 288,
- "column" : 8,
- "source_fragment" : "pdr_counter.count(fabric_meta.spgw.ctr_id)"
+ "filename" : "include/control/spgw.p4",
+ "line" : 345,
+ "column" : 46,
+ "source_fragment" : "return"
},
"key" : [],
"match_type" : "exact",
@@ -7589,14 +7483,43 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [75],
- "actions" : ["act_31"],
- "base_default_next" : "node_91",
+ "action_ids" : [61],
+ "actions" : ["act_18"],
+ "base_default_next" : "node_71",
"next_tables" : {
- "act_31" : "node_91"
+ "act_18" : "node_71"
},
"default_entry" : {
- "action_id" : 75,
+ "action_id" : 61,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_20",
+ "id" : 40,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 346,
+ "column" : 8,
+ "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
+ },
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [63],
+ "actions" : ["act_20"],
+ "base_default_next" : "node_73",
+ "next_tables" : {
+ "act_20" : "node_73"
+ },
+ "default_entry" : {
+ "action_id" : 63,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7604,10 +7527,10 @@
},
{
"name" : "tbl_spgw_egress_gtpu_encap",
- "id" : 54,
+ "id" : 41,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 291,
+ "filename" : "include/control/spgw.p4",
+ "line" : 349,
"column" : 12,
"source_fragment" : "gtpu_encap()"
},
@@ -7618,14 +7541,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [61],
+ "action_ids" : [51],
"actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
"base_default_next" : null,
"next_tables" : {
"FabricEgress.spgw_egress.gtpu_encap" : null
},
"default_entry" : {
- "action_id" : 61,
+ "action_id" : 51,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -7635,8 +7558,8 @@
"action_profiles" : [],
"conditionals" : [
{
- "name" : "node_66",
- "id" : 22,
+ "name" : "node_44",
+ "id" : 15,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 39,
@@ -7664,12 +7587,12 @@
}
}
},
- "true_next" : "tbl_act_22",
- "false_next" : "node_68"
+ "true_next" : "tbl_act_9",
+ "false_next" : "node_46"
},
{
- "name" : "node_68",
- "id" : 23,
+ "name" : "node_46",
+ "id" : 16,
"source_info" : {
"filename" : "include/control/packetio.p4",
"line" : 43,
@@ -7690,12 +7613,12 @@
}
}
},
- "true_next" : "tbl_act_23",
- "false_next" : "node_70"
+ "true_next" : "tbl_act_10",
+ "false_next" : "node_48"
},
{
- "name" : "node_70",
- "id" : 24,
+ "name" : "node_48",
+ "id" : 17,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 335,
@@ -7743,12 +7666,12 @@
}
}
},
- "true_next" : "tbl_act_24",
- "false_next" : "node_72"
+ "true_next" : "tbl_act_11",
+ "false_next" : "node_50"
},
{
- "name" : "node_72",
- "id" : 25,
+ "name" : "node_50",
+ "id" : 18,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 340,
@@ -7769,12 +7692,12 @@
}
}
},
- "true_next" : "node_73",
+ "true_next" : "node_51",
"false_next" : "tbl_egress_next_set_mpls"
},
{
- "name" : "node_73",
- "id" : 26,
+ "name" : "node_51",
+ "id" : 19,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 341,
@@ -7796,8 +7719,8 @@
"false_next" : "FabricEgress.egress_next.egress_vlan"
},
{
- "name" : "node_79",
- "id" : 27,
+ "name" : "node_57",
+ "id" : 20,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 357,
@@ -7822,12 +7745,12 @@
}
}
},
- "true_next" : "node_80",
- "false_next" : "node_82"
+ "true_next" : "node_58",
+ "false_next" : "node_60"
},
{
- "name" : "node_80",
- "id" : 28,
+ "name" : "node_58",
+ "id" : 21,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 359,
@@ -7849,11 +7772,11 @@
}
},
"true_next" : "tbl_egress_next_push_vlan",
- "false_next" : "node_82"
+ "false_next" : "node_60"
},
{
- "name" : "node_82",
- "id" : 29,
+ "name" : "node_60",
+ "id" : 22,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 368,
@@ -7871,12 +7794,12 @@
}
}
},
- "true_next" : "tbl_act_27",
- "false_next" : "node_86"
+ "true_next" : "tbl_act_14",
+ "false_next" : "node_64"
},
{
- "name" : "node_84",
- "id" : 30,
+ "name" : "node_62",
+ "id" : 23,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 370,
@@ -7897,12 +7820,12 @@
}
}
},
- "true_next" : "tbl_act_28",
- "false_next" : "tbl_act_31"
+ "true_next" : "tbl_act_15",
+ "false_next" : "tbl_act_18"
},
{
- "name" : "node_86",
- "id" : 31,
+ "name" : "node_64",
+ "id" : 24,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 372,
@@ -7920,12 +7843,12 @@
}
}
},
- "true_next" : "tbl_act_29",
- "false_next" : "tbl_act_31"
+ "true_next" : "tbl_act_16",
+ "false_next" : "tbl_act_18"
},
{
- "name" : "node_88",
- "id" : 32,
+ "name" : "node_66",
+ "id" : 25,
"source_info" : {
"filename" : "include/control/next.p4",
"line" : 374,
@@ -7946,17 +7869,17 @@
}
}
},
- "true_next" : "tbl_act_30",
- "false_next" : "tbl_act_31"
+ "true_next" : "tbl_act_17",
+ "false_next" : "tbl_act_18"
},
{
- "name" : "node_91",
- "id" : 33,
+ "name" : "node_69",
+ "id" : 26,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 290,
+ "filename" : "include/control/spgw.p4",
+ "line" : 345,
"column" : 12,
- "source_fragment" : "fabric_meta.spgw.outer_header_creation == true"
+ "source_fragment" : "fabric_md.spgw.skip_spgw == true"
},
"expression" : {
"type" : "expression",
@@ -7969,7 +7892,64 @@
"left" : null,
"right" : {
"type" : "field",
- "value" : ["scalars", "fabric_metadata_t._spgw_outer_header_creation27"]
+ "value" : ["scalars", "fabric_metadata_t._spgw_skip_spgw28"]
+ }
+ }
+ },
+ "right" : {
+ "type" : "bool",
+ "value" : true
+ }
+ }
+ },
+ "true_next" : "tbl_act_19",
+ "false_next" : "node_71"
+ },
+ {
+ "name" : "node_71",
+ "id" : 27,
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "not",
+ "left" : null,
+ "right" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "spgw_egress_hasReturned"]
+ }
+ }
+ }
+ }
+ },
+ "false_next" : null,
+ "true_next" : "tbl_act_20"
+ },
+ {
+ "name" : "node_73",
+ "id" : 28,
+ "source_info" : {
+ "filename" : "include/control/spgw.p4",
+ "line" : 348,
+ "column" : 12,
+ "source_fragment" : "fabric_md.spgw.needs_gtpu_encap == true"
+ },
+ "expression" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "==",
+ "left" : {
+ "type" : "expression",
+ "value" : {
+ "op" : "d2b",
+ "left" : null,
+ "right" : {
+ "type" : "field",
+ "value" : ["scalars", "fabric_metadata_t._spgw_needs_gtpu_encap32"]
}
}
},
@@ -8016,8 +7996,8 @@
"name" : "cksum_0",
"id" : 1,
"source_info" : {
- "filename" : "include/spgw.p4",
- "line" : 306,
+ "filename" : "include/control/spgw.p4",
+ "line" : 364,
"column" : 8,
"source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
},