{ "header_types" : [ { "name" : "scalars_0", "id" : 0, "fields" : [ ["local_metadata_t.is_multicast", 1, false], ["_padding_0", 7, false] ] }, { "name" : "standard_metadata", "id" : 1, "fields" : [ ["ingress_port", 9, false], ["egress_spec", 9, false], ["egress_port", 9, false], ["clone_spec", 32, false], ["instance_type", 32, false], ["drop", 1, false], ["recirculate_port", 16, 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], ["lf_field_list", 32, false], ["mcast_grp", 16, false], ["resubmit_flag", 32, false], ["egress_rid", 16, false], ["recirculate_flag", 32, false], ["checksum_error", 1, false], ["parser_error", 32, false], ["priority", 3, false], ["_padding", 2, false] ] }, { "name" : "ethernet_t", "id" : 2, "fields" : [ ["dst_addr", 48, false], ["src_addr", 48, false], ["ether_type", 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", 1], ["PacketTooShort", 2], ["NoMatch", 3], ["StackOutOfBounds", 4], ["HeaderTooShort", 5], ["ParserTimeout", 6], ["ParserInvalidArgument", 7] ], "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" : [ { "value" : "default", "mask" : null, "next_state" : null } ], "transition_key" : [] } ] } ], "parse_vsets" : [], "deparsers" : [ { "name" : "deparser", "id" : 0, "source_info" : { "filename" : "p4src/main.p4", "line" : 130, "column" : 8, "source_fragment" : "DeparserImpl" }, "order" : ["ethernet"] } ], "meter_arrays" : [], "counter_arrays" : [], "register_arrays" : [], "calculations" : [], "learn_lists" : [], "actions" : [ { "name" : "IngressPipeImpl.drop", "id" : 0, "runtime_data" : [], "primitives" : [ { "op" : "mark_to_drop", "parameters" : [ { "type" : "header", "value" : "standard_metadata" } ], "source_info" : { "filename" : "p4src/main.p4", "line" : 77, "column" : 8, "source_fragment" : "mark_to_drop(standard_metadata)" } } ] }, { "name" : "IngressPipeImpl.set_egress_port", "id" : 1, "runtime_data" : [ { "name" : "port", "bitwidth" : 9 } ], "primitives" : [ { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["standard_metadata", "egress_spec"] }, { "type" : "runtime_data", "value" : 0 } ], "source_info" : { "filename" : "p4src/main.p4", "line" : 81, "column" : 8, "source_fragment" : "standard_metadata.egress_spec = port" } } ] }, { "name" : "IngressPipeImpl.set_multicast_group", "id" : 2, "runtime_data" : [ { "name" : "gid", "bitwidth" : 16 } ], "primitives" : [ { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["standard_metadata", "mcast_grp"] }, { "type" : "runtime_data", "value" : 0 } ], "source_info" : { "filename" : "p4src/main.p4", "line" : 89, "column" : 8, "source_fragment" : "standard_metadata.mcast_grp = gid" } }, { "op" : "assign", "parameters" : [ { "type" : "field", "value" : ["scalars", "local_metadata_t.is_multicast"] }, { "type" : "expression", "value" : { "type" : "expression", "value" : { "op" : "b2d", "left" : null, "right" : { "type" : "bool", "value" : true } } } } ], "source_info" : { "filename" : "p4src/main.p4", "line" : 90, "column" : 8, "source_fragment" : "local_metadata.is_multicast = true" } } ] } ], "pipelines" : [ { "name" : "ingress", "id" : 0, "source_info" : { "filename" : "p4src/main.p4", "line" : 71, "column" : 8, "source_fragment" : "IngressPipeImpl" }, "init_table" : "IngressPipeImpl.l2_exact_table", "tables" : [ { "name" : "IngressPipeImpl.l2_exact_table", "id" : 0, "source_info" : { "filename" : "p4src/main.p4", "line" : 95, "column" : 10, "source_fragment" : "l2_exact_table" }, "key" : [ { "match_type" : "exact", "name" : "standard_metadata.ingress_port", "target" : ["standard_metadata", "ingress_port"], "mask" : null } ], "match_type" : "exact", "type" : "simple", "max_size" : 1024, "with_counters" : false, "support_timeout" : false, "direct_meters" : null, "action_ids" : [1, 2, 0], "actions" : ["IngressPipeImpl.set_egress_port", "IngressPipeImpl.set_multicast_group", "IngressPipeImpl.drop"], "base_default_next" : null, "next_tables" : { "IngressPipeImpl.set_egress_port" : null, "IngressPipeImpl.set_multicast_group" : null, "IngressPipeImpl.drop" : 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" : "p4src/main.p4", "line" : 116, "column" : 8, "source_fragment" : "EgressPipeImpl" }, "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.lf_field_list", ["standard_metadata", "lf_field_list"] ], [ "intrinsic_metadata.mcast_grp", ["standard_metadata", "mcast_grp"] ], [ "intrinsic_metadata.resubmit_flag", ["standard_metadata", "resubmit_flag"] ], [ "intrinsic_metadata.egress_rid", ["standard_metadata", "egress_rid"] ], [ "intrinsic_metadata.recirculate_flag", ["standard_metadata", "recirculate_flag"] ], [ "intrinsic_metadata.priority", ["standard_metadata", "priority"] ] ], "program" : "p4src/main.p4", "__meta__" : { "version" : [2, 18], "compiler" : "https://github.com/p4lang/p4c" } }