{ "header_types" : [ { "name" : "scalars_0", "id" : 0, "fields" : [ ["key_1", 16, false], ["key_0", 5, false], ["_padding_0", 3, false] ] }, { "name" : "standard_metadata", "id" : 1, "fields" : [ ["ingress_port", 9, false], ["egress_spec", 9, false], ["egress_port", 9, false], ["instance_type", 32, false], ["packet_length", 32, false], ["enq_timestamp", 32, false], ["enq_qdepth", 19, false], ["deq_timedelta", 32, false], ["deq_qdepth", 19, false], ["ingress_global_timestamp", 48, false], ["egress_global_timestamp", 48, false], ["mcast_grp", 16, false], ["egress_rid", 16, false], ["checksum_error", 1, false], ["parser_error", 32, false], ["priority", 3, false], ["_padding", 3, false] ] }, { "name" : "ethernet_t", "id" : 2, "fields" : [ ["dstAddr", 48, false], ["srcAddr", 48, false], ["etherType", 16, false] ] } ], "headers" : [ { "name" : "scalars", "id" : 0, "header_type" : "scalars_0", "metadata" : true, "pi_omit" : true }, { "name" : "standard_metadata", "id" : 1, "header_type" : "standard_metadata", "metadata" : true, "pi_omit" : true }, { "name" : "ethernet", "id" : 2, "header_type" : "ethernet_t", "metadata" : false, "pi_omit" : true } ], "header_stacks" : [], "header_union_types" : [], "header_unions" : [], "header_union_stacks" : [], "field_lists" : [], "errors" : [ ["NoError", 0], ["PacketTooShort", 1], ["NoMatch", 2], ["StackOutOfBounds", 3], ["HeaderTooShort", 4], ["ParserTimeout", 5], ["ParserInvalidArgument", 6] ], "enums" : [], "parsers" : [ { "name" : "parser", "id" : 0, "init_state" : "start", "parse_states" : [ { "name" : "start", "id" : 0, "parser_ops" : [ { "parameters" : [ { "type" : "regular", "value" : "ethernet" } ], "op" : "extract" } ], "transitions" : [ { "type" : "default", "value" : null, "mask" : null, "next_state" : null } ], "transition_key" : [] } ] } ], "parse_vsets" : [], "deparsers" : [ { "name" : "deparser", "id" : 0, "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 90, "column" : 8, "source_fragment" : "deparserImpl" }, "order" : ["ethernet"], "primitives" : [] } ], "meter_arrays" : [], "counter_arrays" : [], "register_arrays" : [], "calculations" : [], "learn_lists" : [], "actions" : [ { "name" : "NoAction", "id" : 0, "runtime_data" : [], "primitives" : [] }, { "name" : "ingressImpl.my_drop", "id" : 1, "runtime_data" : [], "primitives" : [ { "op" : "mark_to_drop", "parameters" : [ { "type" : "header", "value" : "standard_metadata" } ], "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 55, "column" : 8, "source_fragment" : "mark_to_drop(stdmeta)" } } ] }, { "name" : "ingressImpl.foo", "id" : 2, "runtime_data" : [ { "name" : "out_port", "bitwidth" : 9 } ], "primitives" : [ { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["ethernet", "dstAddr"] }, { "type" : "expression", "value" : { "type" : "expression", "value" : { "op" : "|", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "field", "value" : ["ethernet", "dstAddr"] }, "right" : { "type" : "hexstr", "value" : "0xffffff83ffff" } } }, "right" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "<<", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : ">>", "left" : { "type" : "field", "value" : ["ethernet", "srcAddr"] }, "right" : { "type" : "hexstr", "value" : "0x1" } } }, "right" : { "type" : "hexstr", "value" : "0xffffffffffff" } } }, "right" : { "type" : "hexstr", "value" : "0x1f" } } }, "right" : { "type" : "hexstr", "value" : "0xffffffffffff" } } }, "right" : { "type" : "hexstr", "value" : "0x12" } } }, "right" : { "type" : "hexstr", "value" : "0xffffffffffff" } } }, "right" : { "type" : "hexstr", "value" : "0x0000007c0000" } } } } } } ], "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 58, "column" : 8, "source_fragment" : "hdr.ethernet.dstAddr[22:18] = hdr.ethernet.srcAddr[5:1]" } }, { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["standard_metadata", "egress_spec"] }, { "type" : "runtime_data", "value" : 0 } ], "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 59, "column" : 8, "source_fragment" : "stdmeta.egress_spec = out_port" } } ] }, { "name" : "matchonexprs2bmv2l63", "id" : 3, "runtime_data" : [], "primitives" : [ { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["scalars", "key_1"] }, { "type" : "expression", "value" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "+", "left" : { "type" : "field", "value" : ["ethernet", "etherType"] }, "right" : { "type" : "hexstr", "value" : "0xfff6" } } }, "right" : { "type" : "hexstr", "value" : "0xffff" } } } } ], "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 65, "column" : 12, "source_fragment" : " hdr.ethernet.etherType - 10 : exact @name(\\\"etherType_less_10\\\");" } }, { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["scalars", "key_0"] }, { "type" : "expression", "value" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : "&", "left" : { "type" : "expression", "value" : { "op" : ">>", "left" : { "type" : "field", "value" : ["ethernet", "srcAddr"] }, "right" : { "type" : "hexstr", "value" : "0x12" } } }, "right" : { "type" : "hexstr", "value" : "0xffffffffffff" } } }, "right" : { "type" : "hexstr", "value" : "0x1f" } } } } ], "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 63, "column" : 12, "source_fragment" : "hdr.ethernet.srcAddr[22:18]" } } ] } ], "pipelines" : [ { "name" : "ingress", "id" : 0, "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 50, "column" : 8, "source_fragment" : "ingressImpl" }, "init_table" : "tbl_matchonexprs2bmv2l63", "tables" : [ { "name" : "tbl_matchonexprs2bmv2l63", "id" : 0, "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 63, "column" : 12, "source_fragment" : "hdr.ethernet.srcAddr[22:18] : exact; ..." }, "key" : [], "match_type" : "exact", "type" : "simple", "max_size" : 1024, "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [3], "actions" : ["matchonexprs2bmv2l63"], "base_default_next" : "ingressImpl.t1", "next_tables" : { "matchonexprs2bmv2l63" : "ingressImpl.t1" }, "default_entry" : { "action_id" : 3, "action_const" : true, "action_data" : [], "action_entry_const" : true } }, { "name" : "ingressImpl.t1", "id" : 1, "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 61, "column" : 10, "source_fragment" : "t1" }, "key" : [ { "match_type" : "exact", "name" : "hdr.ethernet.srcAddr[22:18]", "target" : ["scalars", "key_0"], "mask" : null }, { "match_type" : "exact", "name" : "hdr.ethernet.dstAddr & 0x10101010101", "target" : ["ethernet", "dstAddr"], "mask" : "0x010101010101" }, { "match_type" : "exact", "name" : "etherType_less_10", "target" : ["scalars", "key_1"], "mask" : null } ], "match_type" : "exact", "type" : "simple", "max_size" : 1024, "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [2, 1, 0], "actions" : ["ingressImpl.foo", "ingressImpl.my_drop", "NoAction"], "base_default_next" : null, "next_tables" : { "ingressImpl.foo" : null, "ingressImpl.my_drop" : null, "NoAction" : null }, "default_entry" : { "action_id" : 0, "action_const" : true, "action_data" : [], "action_entry_const" : true } } ], "action_profiles" : [], "conditionals" : [] }, { "name" : "egress", "id" : 1, "source_info" : { "filename" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "line" : 79, "column" : 8, "source_fragment" : "egressImpl" }, "init_table" : null, "tables" : [], "action_profiles" : [], "conditionals" : [] } ], "checksums" : [], "force_arith" : [], "extern_instances" : [], "field_aliases" : [ [ "queueing_metadata.enq_timestamp", ["standard_metadata", "enq_timestamp"] ], [ "queueing_metadata.enq_qdepth", ["standard_metadata", "enq_qdepth"] ], [ "queueing_metadata.deq_timedelta", ["standard_metadata", "deq_timedelta"] ], [ "queueing_metadata.deq_qdepth", ["standard_metadata", "deq_qdepth"] ], [ "intrinsic_metadata.ingress_global_timestamp", ["standard_metadata", "ingress_global_timestamp"] ], [ "intrinsic_metadata.egress_global_timestamp", ["standard_metadata", "egress_global_timestamp"] ], [ "intrinsic_metadata.mcast_grp", ["standard_metadata", "mcast_grp"] ], [ "intrinsic_metadata.egress_rid", ["standard_metadata", "egress_rid"] ], [ "intrinsic_metadata.priority", ["standard_metadata", "priority"] ] ], "program" : "/home/vpeschax/p4c/testdata/p4_16_samples/match-on-exprs2-bmv2.p4", "__meta__" : { "version" : [2, 23], "compiler" : "https://github.com/p4lang/p4c" } }