diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java index fed205c46d..258e414040 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java +++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java @@ -33,8 +33,6 @@ public final class FabricConstants { } // Header field IDs - public static final PiMatchFieldId STANDARD_METADATA_EGRESS_PORT = - PiMatchFieldId.of("standard_metadata.egress_port"); public static final PiMatchFieldId FABRIC_METADATA_L4_SRC_PORT = PiMatchFieldId.of("fabric_metadata.l4_src_port"); public static final PiMatchFieldId SPGW_META_S1U_SGW_ADDR = @@ -51,16 +49,18 @@ public final class FabricConstants { PiMatchFieldId.of("hdr.ethernet.src_addr"); public static final PiMatchFieldId HDR_ICMP_ICMP_TYPE = PiMatchFieldId.of("hdr.icmp.icmp_type"); + public static final PiMatchFieldId STANDARD_METADATA_EGRESS_PORT = + PiMatchFieldId.of("standard_metadata.egress_port"); public static final PiMatchFieldId FABRIC_METADATA_NEXT_ID = PiMatchFieldId.of("fabric_metadata.next_id"); - public static final PiMatchFieldId HDR_IPV4_DST_ADDR = - PiMatchFieldId.of("hdr.ipv4.dst_addr"); public static final PiMatchFieldId FABRIC_METADATA_L4_DST_PORT = PiMatchFieldId.of("fabric_metadata.l4_dst_port"); + public static final PiMatchFieldId HDR_VLAN_TAG_ETHER_TYPE = + PiMatchFieldId.of("hdr.vlan_tag.ether_type"); public static final PiMatchFieldId STANDARD_METADATA_INGRESS_PORT = PiMatchFieldId.of("standard_metadata.ingress_port"); - public static final PiMatchFieldId FABRIC_METADATA_ORIGINAL_ETHER_TYPE = - PiMatchFieldId.of("fabric_metadata.original_ether_type"); + public static final PiMatchFieldId HDR_IPV4_DST_ADDR = + PiMatchFieldId.of("hdr.ipv4.dst_addr"); public static final PiMatchFieldId IPV4_DST_ADDR = PiMatchFieldId.of("ipv4.dst_addr"); public static final PiMatchFieldId HDR_VLAN_TAG_IS_VALID = @@ -235,4 +235,4 @@ public final class FabricConstants { PiControlMetadataId.of("ingress_port"); public static final PiControlMetadataId EGRESS_PORT = PiControlMetadataId.of("egress_port"); -} +} \ No newline at end of file diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java index 5381e36197..6031afd7aa 100644 --- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java +++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricInterpreter.java @@ -108,16 +108,12 @@ public class FabricInterpreter extends AbstractHandlerBehaviour .put(Criterion.Type.IN_PORT, FabricConstants.STANDARD_METADATA_INGRESS_PORT) .put(Criterion.Type.ETH_DST, FabricConstants.HDR_ETHERNET_DST_ADDR) .put(Criterion.Type.ETH_SRC, FabricConstants.HDR_ETHERNET_SRC_ADDR) - .put(Criterion.Type.ETH_TYPE, FabricConstants.FABRIC_METADATA_ORIGINAL_ETHER_TYPE) + .put(Criterion.Type.ETH_TYPE, FabricConstants.HDR_VLAN_TAG_ETHER_TYPE) .put(Criterion.Type.MPLS_LABEL, FabricConstants.HDR_MPLS_LABEL) .put(Criterion.Type.VLAN_VID, FabricConstants.HDR_VLAN_TAG_VLAN_ID) .put(Criterion.Type.IPV4_DST, FabricConstants.HDR_IPV4_DST_ADDR) .put(Criterion.Type.IPV4_SRC, FabricConstants.HDR_IPV4_SRC_ADDR) .put(Criterion.Type.IPV6_DST, FabricConstants.HDR_IPV6_DST_ADDR) - .put(Criterion.Type.TCP_SRC, FabricConstants.FABRIC_METADATA_L4_SRC_PORT) - .put(Criterion.Type.TCP_DST, FabricConstants.FABRIC_METADATA_L4_DST_PORT) - .put(Criterion.Type.UDP_SRC, FabricConstants.FABRIC_METADATA_L4_SRC_PORT) - .put(Criterion.Type.UDP_DST, FabricConstants.FABRIC_METADATA_L4_DST_PORT) .put(Criterion.Type.IP_PROTO, FabricConstants.FABRIC_METADATA_IP_PROTO) .put(Criterion.Type.ICMPV6_TYPE, FabricConstants.HDR_ICMP_ICMP_TYPE) .put(Criterion.Type.ICMPV6_CODE, FabricConstants.HDR_ICMP_ICMP_CODE) @@ -128,7 +124,7 @@ public class FabricInterpreter extends AbstractHandlerBehaviour .put(FabricConstants.STANDARD_METADATA_INGRESS_PORT, Criterion.Type.IN_PORT) .put(FabricConstants.HDR_ETHERNET_DST_ADDR, Criterion.Type.ETH_DST) .put(FabricConstants.HDR_ETHERNET_SRC_ADDR, Criterion.Type.ETH_SRC) - .put(FabricConstants.FABRIC_METADATA_ORIGINAL_ETHER_TYPE, Criterion.Type.ETH_TYPE) + .put(FabricConstants.HDR_VLAN_TAG_ETHER_TYPE, Criterion.Type.ETH_TYPE) .put(FabricConstants.HDR_MPLS_LABEL, Criterion.Type.MPLS_LABEL) .put(FabricConstants.HDR_VLAN_TAG_VLAN_ID, Criterion.Type.VLAN_VID) .put(FabricConstants.HDR_IPV4_DST_ADDR, Criterion.Type.IPV4_DST) diff --git a/pipelines/fabric/src/main/resources/include/control/filtering.p4 b/pipelines/fabric/src/main/resources/include/control/filtering.p4 index 050ee8dd5c..c5030d7f2d 100644 --- a/pipelines/fabric/src/main/resources/include/control/filtering.p4 +++ b/pipelines/fabric/src/main/resources/include/control/filtering.p4 @@ -99,7 +99,7 @@ control Filtering ( key = { standard_metadata.ingress_port: exact; hdr.ethernet.dst_addr: exact; - fabric_metadata.original_ether_type: exact; + hdr.vlan_tag.ether_type: exact; } actions = { diff --git a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 b/pipelines/fabric/src/main/resources/include/control/forwarding.p4 index 9d6deaa61e..6098ed3922 100644 --- a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 +++ b/pipelines/fabric/src/main/resources/include/control/forwarding.p4 @@ -130,11 +130,11 @@ control Forwarding ( fabric_metadata.ip_proto: ternary; // 8 fabric_metadata.l4_src_port: ternary; // 16 fabric_metadata.l4_dst_port: ternary; // 16 - fabric_metadata.original_ether_type: ternary; //16 hdr.ethernet.dst_addr: ternary; // 48 hdr.ethernet.src_addr: ternary; // 48 hdr.vlan_tag.vlan_id: ternary; // 12 + hdr.vlan_tag.ether_type: ternary; //16 hdr.ipv4.src_addr: ternary; // 32 hdr.ipv4.dst_addr: ternary; // 32 hdr.icmp.icmp_type: ternary; // 8 @@ -150,7 +150,7 @@ control Forwarding ( } const default_action = nop(); - size = 256; + size = 128; counters = acl_counter; } @@ -234,7 +234,6 @@ control Forwarding ( // TODO: IPv6 hdr.vlan_tag.ether_type = ETHERTYPE_IPV4; - fabric_metadata.original_ether_type = ETHERTYPE_IPV4; } else if (fabric_metadata.fwd_type == FWD_IPV4_UNICAST) unicast_v4.apply(); #ifdef WITH_MULTICAST diff --git a/pipelines/fabric/src/main/resources/include/header.p4 b/pipelines/fabric/src/main/resources/include/header.p4 index 1bff3dab5e..bc0b18f3d9 100644 --- a/pipelines/fabric/src/main/resources/include/header.p4 +++ b/pipelines/fabric/src/main/resources/include/header.p4 @@ -157,7 +157,6 @@ struct fabric_metadata_t { bit<8> ip_proto; bit<16> l4_src_port; bit<16> l4_dst_port; - bit<16> original_ether_type; #ifdef WITH_SPGW spgw_meta_t spgw; #endif // WITH_SPGW diff --git a/pipelines/fabric/src/main/resources/include/parser.p4 b/pipelines/fabric/src/main/resources/include/parser.p4 index 5c998384cc..3f70f3e210 100644 --- a/pipelines/fabric/src/main/resources/include/parser.p4 +++ b/pipelines/fabric/src/main/resources/include/parser.p4 @@ -39,7 +39,6 @@ inout standard_metadata_t standard_metadata) { state parse_ethernet { packet.extract(hdr.ethernet); - fabric_metadata.original_ether_type = hdr.ethernet.ether_type; transition select(hdr.ethernet.ether_type){ ETHERTYPE_VLAN: parse_vlan_tag; ETHERTYPE_MPLS: parse_mpls; @@ -54,7 +53,6 @@ inout standard_metadata_t standard_metadata) { state parse_vlan_tag { packet.extract(hdr.vlan_tag); - fabric_metadata.original_ether_type = hdr.vlan_tag.ether_type; transition select(hdr.vlan_tag.ether_type){ ETHERTYPE_ARP: parse_arp; ETHERTYPE_IPV4: parse_ipv4; diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json index 62d1361f41..9d4a06becf 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json @@ -23,7 +23,6 @@ ["fabric_metadata_t.ip_proto", 8, false], ["fabric_metadata_t.l4_src_port", 16, false], ["fabric_metadata_t.l4_dst_port", 16, false], - ["fabric_metadata_t.original_ether_type", 16, false], ["_padding_1", 6, false] ] }, @@ -403,19 +402,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["ethernet", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -474,19 +460,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -967,7 +940,7 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 165, + "line" : 163, "column" : 8, "source_fragment" : "FabricDeparser" }, @@ -3828,25 +3801,6 @@ "column" : 31, "source_fragment" : "0x0800; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "hexstr", - "value" : "0x0800" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 69, - "column" : 31, - "source_fragment" : "0x0800; ..." - } } ] }, @@ -5699,8 +5653,8 @@ }, { "match_type" : "exact", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], "mask" : null } ], @@ -6020,12 +5974,6 @@ "target" : ["scalars", "fabric_metadata_t.l4_dst_port"], "mask" : null }, - { - "match_type" : "ternary", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], - "mask" : null - }, { "match_type" : "ternary", "name" : "hdr.ethernet.dst_addr", @@ -6044,6 +5992,12 @@ "target" : ["vlan_tag", "vlan_id"], "mask" : null }, + { + "match_type" : "ternary", + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], + "mask" : null + }, { "match_type" : "ternary", "name" : "hdr.ipv4.src_addr", @@ -6071,7 +6025,7 @@ ], "match_type" : "ternary", "type" : "simple", - "max_size" : 256, + "max_size" : 128, "with_counters" : true, "support_timeout" : false, "direct_meters" : null, @@ -6821,7 +6775,7 @@ "id" : 11, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 239, + "line" : 238, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, @@ -6847,7 +6801,7 @@ "id" : 12, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 241, + "line" : 240, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST" }, @@ -6873,7 +6827,7 @@ "id" : 13, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 244, + "line" : 243, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST" }, @@ -6899,7 +6853,7 @@ "id" : 14, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 246, + "line" : 245, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST" }, diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt index 4aaf7bb719..42a17dc6a1 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt @@ -141,7 +141,7 @@ tables { } match_fields { id: 3 - name: "fabric_metadata.original_ether_type" + name: "hdr.vlan_tag.ether_type" bitwidth: 16 match_type: EXACT } @@ -260,28 +260,28 @@ tables { } match_fields { id: 5 - name: "fabric_metadata.original_ether_type" - bitwidth: 16 - match_type: TERNARY - } - match_fields { - id: 6 name: "hdr.ethernet.dst_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 7 + id: 6 name: "hdr.ethernet.src_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 8 + id: 7 name: "hdr.vlan_tag.vlan_id" bitwidth: 12 match_type: TERNARY } + match_fields { + id: 8 + name: "hdr.vlan_tag.ether_type" + bitwidth: 16 + match_type: TERNARY + } match_fields { id: 9 name: "hdr.ipv4.src_addr" @@ -324,7 +324,7 @@ tables { } const_default_action_id: 16819938 direct_resource_ids: 318772272 - size: 256 + size: 128 idle_timeout_behavior: NO_TIMEOUT } tables { diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json index 14fa6ca2b8..f0f4ba3749 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json @@ -23,7 +23,6 @@ ["fabric_metadata_t.ip_proto", 8, false], ["fabric_metadata_t.l4_src_port", 16, false], ["fabric_metadata_t.l4_dst_port", 16, false], - ["fabric_metadata_t.original_ether_type", 16, false], ["_padding_1", 6, false] ] }, @@ -382,19 +381,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["ethernet", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -447,19 +433,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -869,7 +842,7 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 165, + "line" : 163, "column" : 8, "source_fragment" : "FabricDeparser" }, @@ -3601,25 +3574,6 @@ "column" : 31, "source_fragment" : "0x0800; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "hexstr", - "value" : "0x0800" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 69, - "column" : 31, - "source_fragment" : "0x0800; ..." - } } ] }, @@ -5423,8 +5377,8 @@ }, { "match_type" : "exact", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], "mask" : null } ], @@ -5621,12 +5575,6 @@ "target" : ["scalars", "fabric_metadata_t.l4_dst_port"], "mask" : null }, - { - "match_type" : "ternary", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], - "mask" : null - }, { "match_type" : "ternary", "name" : "hdr.ethernet.dst_addr", @@ -5645,6 +5593,12 @@ "target" : ["vlan_tag", "vlan_id"], "mask" : null }, + { + "match_type" : "ternary", + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], + "mask" : null + }, { "match_type" : "ternary", "name" : "hdr.ipv4.src_addr", @@ -5672,7 +5626,7 @@ ], "match_type" : "ternary", "type" : "simple", - "max_size" : 256, + "max_size" : 128, "with_counters" : true, "support_timeout" : false, "direct_meters" : null, @@ -6399,7 +6353,7 @@ "id" : 11, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 247, + "line" : 246, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt index b82cd69511..f480540f4a 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt @@ -141,7 +141,7 @@ tables { } match_fields { id: 3 - name: "fabric_metadata.original_ether_type" + name: "hdr.vlan_tag.ether_type" bitwidth: 16 match_type: EXACT } @@ -260,28 +260,28 @@ tables { } match_fields { id: 5 - name: "fabric_metadata.original_ether_type" - bitwidth: 16 - match_type: TERNARY - } - match_fields { - id: 6 name: "hdr.ethernet.dst_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 7 + id: 6 name: "hdr.ethernet.src_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 8 + id: 7 name: "hdr.vlan_tag.vlan_id" bitwidth: 12 match_type: TERNARY } + match_fields { + id: 8 + name: "hdr.vlan_tag.ether_type" + bitwidth: 16 + match_type: TERNARY + } match_fields { id: 9 name: "hdr.ipv4.src_addr" @@ -324,7 +324,7 @@ tables { } const_default_action_id: 16819938 direct_resource_ids: 318772272 - size: 256 + size: 128 idle_timeout_behavior: NO_TIMEOUT } tables { diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json index 5186f59611..13e607d763 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json @@ -19,7 +19,6 @@ ["fabric_metadata_t.ip_proto", 8, false], ["fabric_metadata_t.l4_src_port", 16, false], ["fabric_metadata_t.l4_dst_port", 16, false], - ["fabric_metadata_t.original_ether_type", 16, false], ["_padding_0", 2, false] ] }, @@ -322,19 +321,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["ethernet", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -387,19 +373,6 @@ } ], "op" : "extract" - }, - { - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "field", - "value" : ["vlan_tag", "ether_type"] - } - ], - "op" : "set" } ], "transitions" : [ @@ -694,7 +667,7 @@ "id" : 0, "source_info" : { "filename" : "include/parser.p4", - "line" : 165, + "line" : 163, "column" : 8, "source_fragment" : "FabricDeparser" }, @@ -2683,25 +2656,6 @@ "column" : 31, "source_fragment" : "0x0800; ..." } - }, - { - "op" : "assign", - "parameters" : [ - { - "type" : "field", - "value" : ["scalars", "fabric_metadata_t.original_ether_type"] - }, - { - "type" : "hexstr", - "value" : "0x0800" - } - ], - "source_info" : { - "filename" : "include/control/../define.p4", - "line" : 69, - "column" : 31, - "source_fragment" : "0x0800; ..." - } } ] }, @@ -3410,8 +3364,8 @@ }, { "match_type" : "exact", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], "mask" : null } ], @@ -3608,12 +3562,6 @@ "target" : ["scalars", "fabric_metadata_t.l4_dst_port"], "mask" : null }, - { - "match_type" : "ternary", - "name" : "fabric_metadata.original_ether_type", - "target" : ["scalars", "fabric_metadata_t.original_ether_type"], - "mask" : null - }, { "match_type" : "ternary", "name" : "hdr.ethernet.dst_addr", @@ -3632,6 +3580,12 @@ "target" : ["vlan_tag", "vlan_id"], "mask" : null }, + { + "match_type" : "ternary", + "name" : "hdr.vlan_tag.ether_type", + "target" : ["vlan_tag", "ether_type"], + "mask" : null + }, { "match_type" : "ternary", "name" : "hdr.ipv4.src_addr", @@ -3659,7 +3613,7 @@ ], "match_type" : "ternary", "type" : "simple", - "max_size" : 256, + "max_size" : 128, "with_counters" : true, "support_timeout" : false, "direct_meters" : null, @@ -4190,7 +4144,7 @@ "id" : 3, "source_info" : { "filename" : "include/control/forwarding.p4", - "line" : 247, + "line" : 246, "column" : 17, "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST" }, diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt index e936930f78..d018058747 100644 --- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt +++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt @@ -60,7 +60,7 @@ tables { } match_fields { id: 3 - name: "fabric_metadata.original_ether_type" + name: "hdr.vlan_tag.ether_type" bitwidth: 16 match_type: EXACT } @@ -179,28 +179,28 @@ tables { } match_fields { id: 5 - name: "fabric_metadata.original_ether_type" - bitwidth: 16 - match_type: TERNARY - } - match_fields { - id: 6 name: "hdr.ethernet.dst_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 7 + id: 6 name: "hdr.ethernet.src_addr" bitwidth: 48 match_type: TERNARY } match_fields { - id: 8 + id: 7 name: "hdr.vlan_tag.vlan_id" bitwidth: 12 match_type: TERNARY } + match_fields { + id: 8 + name: "hdr.vlan_tag.ether_type" + bitwidth: 16 + match_type: TERNARY + } match_fields { id: 9 name: "hdr.ipv4.src_addr" @@ -243,7 +243,7 @@ tables { } const_default_action_id: 16819938 direct_resource_ids: 318772272 - size: 256 + size: 128 idle_timeout_behavior: NO_TIMEOUT } tables {