Removed old P4_14 sources
Replaced by P4_16 programs under /pipelines
Change-Id: I9435889faddcf754d273758244d0d7edf716cea5
diff --git a/tools/test/p4src/FIXME b/tools/test/p4src/FIXME
deleted file mode 100644
index 30be2e7..0000000
--- a/tools/test/p4src/FIXME
+++ /dev/null
@@ -1 +0,0 @@
-This directory should be removed and all P4 source code moved to the respective pipeline module (under /pipelines)
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/Makefile b/tools/test/p4src/p4-14/Makefile
deleted file mode 100644
index 6b9618b..0000000
--- a/tools/test/p4src/p4-14/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-all: default.json empty.json ecmp.json wcmp.json
-
-default.json: default.p4
- p4c-bm2-ss --p4v 14 -o p4c-out/default.json \
- --p4runtime-file p4c-out/default.p4info --p4runtime-format text \
- default.p4
-
-empty.json: empty.p4
- p4c-bm2-ss --p4v 14 -o p4c-out/empty.json \
- --p4runtime-file p4c-out/empty.p4info --p4runtime-format text \
- empty.p4
-
-ecmp.json: ecmp.p4
- p4c-bm2-ss --p4v 14 -o p4c-out/ecmp.json \
- --p4runtime-file p4c-out/ecmp.p4info --p4runtime-format text \
- ecmp.p4
-
-wcmp.json: wcmp.p4
- p4c-bm2-ss --p4v 14 -o p4c-out/wcmp.json \
- --p4runtime-file p4c-out/ecmp.p4info --p4runtime-format text \
- wcmp.p4
-
-clean:
- rm -rf p4c-out/*.json
- rm -rf p4c-out/*.p4info
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/default.p4 b/tools/test/p4src/p4-14/default.p4
deleted file mode 100644
index be88a5d..0000000
--- a/tools/test/p4src/p4-14/default.p4
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "include/defines.p4"
-#include "include/headers.p4"
-#include "include/parser.p4"
-#include "include/actions.p4"
-#include "include/port_counters.p4"
-
-table table0 {
- reads {
- standard_metadata.ingress_port : ternary;
- ethernet.dstAddr : ternary;
- ethernet.srcAddr : ternary;
- ethernet.etherType : ternary;
- }
- actions {
- set_egress_port;
- send_to_cpu;
- drop;
- }
- support_timeout: true;
-}
-
-counter table0_counter {
- type: packets;
- direct: table0;
- min_width : 32;
-}
-
-control ingress {
- apply(table0);
- process_port_counters();
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/ecmp.p4 b/tools/test/p4src/p4-14/ecmp.p4
deleted file mode 100644
index f751049..0000000
--- a/tools/test/p4src/p4-14/ecmp.p4
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "include/defines.p4"
-#include "include/headers.p4"
-#include "include/parser.p4"
-#include "include/actions.p4"
-#include "include/port_counters.p4"
-
-header_type ecmp_metadata_t {
- fields {
- groupId : 16;
- selector : 16;
- groupSize : 32; // Not used. Workaround to avoid p4c complaining about inferring type to groupSize.
- }
-}
-
-metadata ecmp_metadata_t ecmp_metadata;
-
-field_list ecmp_hash_fields {
- ipv4.srcAddr;
- ipv4.dstAddr;
- ipv4.protocol;
- tcp.srcPort;
- tcp.dstPort;
- udp.srcPort;
- udp.dstPort;
-}
-
-field_list_calculation ecmp_hash {
- input {
- ecmp_hash_fields;
- }
- algorithm : crc32;
- output_width : 32;
-}
-
-action ecmp_group(groupId, groupSize) {
- modify_field(ecmp_metadata.groupId, groupId);
- modify_field(ecmp_metadata.groupSize, groupSize);
- modify_field_with_hash_based_offset(ecmp_metadata.selector, 0, ecmp_hash, groupSize);
-}
-
-table table0 {
- reads {
- standard_metadata.ingress_port : ternary;
- ethernet.dstAddr : ternary;
- ethernet.srcAddr : ternary;
- ethernet.etherType : ternary;
- }
- actions {
- set_egress_port;
- ecmp_group;
- send_to_cpu;
- drop;
- }
- support_timeout: true;
-}
-
-table ecmp_group_table {
- reads {
- ecmp_metadata.groupId : exact;
- ecmp_metadata.selector : exact;
- }
- actions {
- set_egress_port;
- }
-}
-
-counter table0_counter {
- type: packets;
- direct: table0;
- min_width : 32;
-}
-
-counter ecmp_group_table_counter {
- type: packets;
- direct: ecmp_group_table;
- min_width : 32;
-}
-
-control ingress {
- apply(table0) {
- ecmp_group {
- apply(ecmp_group_table);
- }
- }
- process_port_counters();
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/empty.p4 b/tools/test/p4src/p4-14/empty.p4
deleted file mode 100644
index 91e6e67..0000000
--- a/tools/test/p4src/p4-14/empty.p4
+++ /dev/null
@@ -1,28 +0,0 @@
-header_type dummy_t {
- fields {
- dummyField : 8;
- }
-}
-
-metadata dummy_t dummy_metadata;
-
-parser start {
- return ingress;
-}
-
-table table0 {
- reads {
- dummy_metadata.dummyField : exact;
- }
- actions {
- dummy_action;
- }
-}
-
-action dummy_action() {
- modify_field(dummy_metadata.dummyField, 1);
-}
-
-control ingress {
- apply(table0);
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/include/actions.p4 b/tools/test/p4src/p4-14/include/actions.p4
deleted file mode 100644
index 8649da0..0000000
--- a/tools/test/p4src/p4-14/include/actions.p4
+++ /dev/null
@@ -1,11 +0,0 @@
-action set_egress_port(port) {
- modify_field(standard_metadata.egress_spec, port);
-}
-
-action drop() {
- modify_field(standard_metadata.egress_spec, DROP_PORT);
-}
-
-action send_to_cpu() {
- modify_field(standard_metadata.egress_spec, CPU_PORT);
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/include/defines.p4 b/tools/test/p4src/p4-14/include/defines.p4
deleted file mode 100644
index c9229c9..0000000
--- a/tools/test/p4src/p4-14/include/defines.p4
+++ /dev/null
@@ -1,4 +0,0 @@
-// Logic ports as defined in the simple_switch target
-#define MAX_PORTS 254
-#define CPU_PORT 255
-#define DROP_PORT 511
diff --git a/tools/test/p4src/p4-14/include/headers.p4 b/tools/test/p4src/p4-14/include/headers.p4
deleted file mode 100644
index 57bda87..0000000
--- a/tools/test/p4src/p4-14/include/headers.p4
+++ /dev/null
@@ -1,58 +0,0 @@
-header_type intrinsic_metadata_t {
- fields {
- ingress_global_timestamp : 32;
- lf_field_list : 32;
- mcast_grp : 16;
- egress_rid : 16;
- }
-}
-
-header_type ethernet_t {
- fields {
- dstAddr : 48;
- srcAddr : 48;
- etherType : 16;
- }
-}
-
-header_type ipv4_t {
- fields {
- version : 4;
- ihl : 4;
- diffserv : 8;
- totalLen : 16;
- identification : 16;
- flags : 3;
- fragOffset : 13;
- ttl : 8;
- protocol : 8;
- hdrChecksum : 16;
- srcAddr : 32;
- dstAddr: 32;
- }
-}
-
-header_type tcp_t {
- fields {
- srcPort : 16;
- dstPort : 16;
- seqNo : 32;
- ackNo : 32;
- dataOffset : 4;
- res : 3;
- ecn : 3;
- ctrl : 6;
- window : 16;
- checksum : 16;
- urgentPtr : 16;
- }
-}
-
-header_type udp_t {
- fields {
- srcPort : 16;
- dstPort : 16;
- length_ : 16;
- checksum : 16;
- }
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/include/parser.p4 b/tools/test/p4src/p4-14/include/parser.p4
deleted file mode 100644
index 6a205ec..0000000
--- a/tools/test/p4src/p4-14/include/parser.p4
+++ /dev/null
@@ -1,45 +0,0 @@
-metadata intrinsic_metadata_t intrinsic_metadata;
-
-parser start {
- return parse_ethernet;
-}
-
-#define ETHERTYPE_IPV4 0x0800
-
-header ethernet_t ethernet;
-
-parser parse_ethernet {
- extract(ethernet);
- return select(latest.etherType) {
- ETHERTYPE_IPV4 : parse_ipv4;
- default : ingress;
- }
-}
-
-header ipv4_t ipv4;
-
-#define IP_PROTOCOLS_TCP 6
-#define IP_PROTOCOLS_UDP 17
-
-parser parse_ipv4 {
- extract(ipv4);
- return select(latest.fragOffset, latest.protocol) {
- IP_PROTOCOLS_TCP : parse_tcp;
- IP_PROTOCOLS_UDP : parse_udp;
- default: ingress;
- }
-}
-
-header tcp_t tcp;
-
-parser parse_tcp {
- extract(tcp);
- return ingress;
-}
-
-header udp_t udp;
-
-parser parse_udp {
- extract(udp);
- return ingress;
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/include/port_counters.p4 b/tools/test/p4src/p4-14/include/port_counters.p4
deleted file mode 100644
index 06cba4f..0000000
--- a/tools/test/p4src/p4-14/include/port_counters.p4
+++ /dev/null
@@ -1,29 +0,0 @@
-counter ingress_port_counter {
- type : packets; // bmv2 always counts both bytes and packets
- instance_count : MAX_PORTS;
- min_width : 32;
-}
-
-counter egress_port_counter {
- type: packets;
- instance_count : MAX_PORTS;
- min_width : 32;
-}
-
-table port_count_table {
- actions {
- count_packet;
- }
-}
-
-action count_packet() {
- count(ingress_port_counter, standard_metadata.ingress_port);
- count(egress_port_counter, standard_metadata.egress_spec);
-}
-
-control process_port_counters {
- // Avoid counting logical ports, such as drop and cpu
- if (standard_metadata.egress_spec < MAX_PORTS) {
- apply(port_count_table);
- }
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/p4c-out/default.json b/tools/test/p4src/p4-14/p4c-out/default.json
deleted file mode 100644
index 4490c18..0000000
--- a/tools/test/p4src/p4-14/p4c-out/default.json
+++ /dev/null
@@ -1,708 +0,0 @@
-{
- "program" : "default.p4",
- "__meta__" : {
- "version" : [2, 7],
- "compiler" : "https://github.com/p4lang/p4c"
- },
- "header_types" : [
- {
- "name" : "scalars_0",
- "id" : 0,
- "fields" : [
- ["tmp", 32, false],
- ["tmp_0", 32, false]
- ]
- },
- {
- "name" : "ethernet_t",
- "id" : 1,
- "fields" : [
- ["dstAddr", 48, false],
- ["srcAddr", 48, false],
- ["etherType", 16, false]
- ]
- },
- {
- "name" : "ipv4_t",
- "id" : 2,
- "fields" : [
- ["version", 4, false],
- ["ihl", 4, false],
- ["diffserv", 8, false],
- ["totalLen", 16, false],
- ["identification", 16, false],
- ["flags", 3, false],
- ["fragOffset", 13, false],
- ["ttl", 8, false],
- ["protocol", 8, false],
- ["hdrChecksum", 16, false],
- ["srcAddr", 32, false],
- ["dstAddr", 32, false]
- ]
- },
- {
- "name" : "tcp_t",
- "id" : 3,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["seqNo", 32, false],
- ["ackNo", 32, false],
- ["dataOffset", 4, false],
- ["res", 3, false],
- ["ecn", 3, false],
- ["ctrl", 6, false],
- ["window", 16, false],
- ["checksum", 16, false],
- ["urgentPtr", 16, false]
- ]
- },
- {
- "name" : "udp_t",
- "id" : 4,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["length_", 16, false],
- ["checksum", 16, false]
- ]
- },
- {
- "name" : "intrinsic_metadata_t",
- "id" : 5,
- "fields" : [
- ["ingress_global_timestamp", 32, false],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["egress_rid", 16, false]
- ]
- },
- {
- "name" : "standard_metadata",
- "id" : 6,
- "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],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["resubmit_flag", 1, false],
- ["egress_rid", 16, false],
- ["_padding", 5, 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
- },
- {
- "name" : "ipv4",
- "id" : 3,
- "header_type" : "ipv4_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "tcp",
- "id" : 4,
- "header_type" : "tcp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "udp",
- "id" : 5,
- "header_type" : "udp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "intrinsic_metadata",
- "id" : 6,
- "header_type" : "intrinsic_metadata_t",
- "metadata" : true,
- "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]
- ],
- "enums" : [],
- "parsers" : [
- {
- "name" : "parser",
- "id" : 0,
- "init_state" : "start",
- "parse_states" : [
- {
- "name" : "parse_ethernet",
- "id" : 0,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ethernet"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x0800",
- "mask" : null,
- "next_state" : "parse_ipv4"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ethernet", "etherType"]
- }
- ]
- },
- {
- "name" : "parse_ipv4",
- "id" : 1,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ipv4"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x000006",
- "mask" : null,
- "next_state" : "parse_tcp"
- },
- {
- "value" : "0x000011",
- "mask" : null,
- "next_state" : "parse_udp"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ipv4", "fragOffset"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "protocol"]
- }
- ]
- },
- {
- "name" : "parse_tcp",
- "id" : 2,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "tcp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "parse_udp",
- "id" : 3,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "udp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "start",
- "id" : 4,
- "parser_ops" : [],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : "parse_ethernet"
- }
- ],
- "transition_key" : []
- }
- ]
- }
- ],
- "deparsers" : [
- {
- "name" : "deparser",
- "id" : 0,
- "order" : ["ethernet", "ipv4", "udp", "tcp"]
- }
- ],
- "meter_arrays" : [],
- "counter_arrays" : [
- {
- "name" : "table0_counter",
- "id" : 0,
- "is_direct" : true,
- "binding" : "table0"
- },
- {
- "name" : "egress_port_counter",
- "id" : 1,
- "size" : 254,
- "is_direct" : false
- },
- {
- "name" : "ingress_port_counter",
- "id" : 2,
- "size" : 254,
- "is_direct" : false
- }
- ],
- "register_arrays" : [],
- "calculations" : [],
- "learn_lists" : [],
- "actions" : [
- {
- "name" : "NoAction",
- "id" : 0,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 1,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "set_egress_port",
- "id" : 2,
- "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" : "include/actions.p4",
- "line" : 1,
- "column" : 23,
- "source_fragment" : "port) { ..."
- }
- }
- ]
- },
- {
- "name" : "send_to_cpu",
- "id" : 3,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 10,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 255)"
- }
- }
- ]
- },
- {
- "name" : "drop",
- "id" : 4,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 6,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 511)"
- }
- }
- ]
- },
- {
- "name" : "count_packet",
- "id" : 5,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "ingress_port"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "ingress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 20,
- "column" : 4,
- "source_fragment" : "count(ingress_port_counter, standard_metadata.ingress_port)"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "egress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 21,
- "column" : 4,
- "source_fragment" : "count(egress_port_counter, standard_metadata.egress_spec)"
- }
- }
- ]
- }
- ],
- "pipelines" : [
- {
- "name" : "ingress",
- "id" : 0,
- "init_table" : "table0",
- "tables" : [
- {
- "name" : "table0",
- "id" : 0,
- "source_info" : {
- "filename" : "default.p4",
- "line" : 7,
- "column" : 0,
- "source_fragment" : "table table0 { ..."
- },
- "key" : [
- {
- "match_type" : "ternary",
- "target" : ["standard_metadata", "ingress_port"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "dstAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "srcAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "etherType"],
- "mask" : null
- }
- ],
- "match_type" : "ternary",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [2, 3, 4, 0],
- "actions" : ["set_egress_port", "send_to_cpu", "drop", "NoAction"],
- "base_default_next" : "node_3",
- "next_tables" : {
- "set_egress_port" : "node_3",
- "send_to_cpu" : "node_3",
- "drop" : "node_3",
- "NoAction" : "node_3"
- },
- "default_entry" : {
- "action_id" : 0,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "port_count_table",
- "id" : 1,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 13,
- "column" : 0,
- "source_fragment" : "table port_count_table { ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [5, 1],
- "actions" : ["count_packet", "NoAction"],
- "base_default_next" : null,
- "next_tables" : {
- "count_packet" : null,
- "NoAction" : null
- },
- "default_entry" : {
- "action_id" : 1,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- }
- ],
- "action_profiles" : [],
- "conditionals" : [
- {
- "name" : "node_3",
- "id" : 0,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 26,
- "column" : 35,
- "source_fragment" : "<"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "<",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00fe"
- }
- }
- },
- "false_next" : null,
- "true_next" : "port_count_table"
- }
- ]
- },
- {
- "name" : "egress",
- "id" : 1,
- "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.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"]
- ]
- ]
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/p4c-out/default.p4info b/tools/test/p4src/p4-14/p4c-out/default.p4info
deleted file mode 100644
index 40722aa..0000000
--- a/tools/test/p4src/p4-14/p4c-out/default.p4info
+++ /dev/null
@@ -1,137 +0,0 @@
-tables {
- preamble {
- id: 33617813
- name: "table0"
- alias: "table0"
- }
- match_fields {
- id: 1
- name: "standard_metadata.ingress_port"
- bitwidth: 9
- match_type: TERNARY
- }
- match_fields {
- id: 2
- name: "ethernet.dstAddr"
- bitwidth: 48
- match_type: TERNARY
- }
- match_fields {
- id: 3
- name: "ethernet.srcAddr"
- bitwidth: 48
- match_type: TERNARY
- }
- match_fields {
- id: 4
- name: "ethernet.etherType"
- bitwidth: 16
- match_type: TERNARY
- }
- action_refs {
- id: 16794308
- }
- action_refs {
- id: 16829080
- }
- action_refs {
- id: 16793508
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- direct_resource_ids: 301990488
- size: 1024
- with_entry_timeout: true
-}
-tables {
- preamble {
- id: 33583368
- name: "port_count_table"
- alias: "port_count_table"
- }
- action_refs {
- id: 16781545
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- size: 1024
-}
-actions {
- preamble {
- id: 16800567
- name: "NoAction"
- alias: "NoAction"
- }
-}
-actions {
- preamble {
- id: 16794308
- name: "set_egress_port"
- alias: "set_egress_port"
- }
- params {
- id: 1
- name: "port"
- bitwidth: 9
- }
-}
-actions {
- preamble {
- id: 16829080
- name: "send_to_cpu"
- alias: "send_to_cpu"
- }
-}
-actions {
- preamble {
- id: 16793508
- name: "drop"
- alias: "drop"
- }
-}
-actions {
- preamble {
- id: 16781545
- name: "count_packet"
- alias: "count_packet"
- }
-}
-counters {
- preamble {
- id: 302008596
- name: "egress_port_counter"
- alias: "egress_port_counter"
- annotations: "@min_width(32)"
- }
- spec {
- unit: PACKETS
- }
- size: 254
-}
-counters {
- preamble {
- id: 301991238
- name: "ingress_port_counter"
- alias: "ingress_port_counter"
- annotations: "@min_width(32)"
- }
- spec {
- unit: PACKETS
- }
- size: 254
-}
-direct_counters {
- preamble {
- id: 301990488
- name: "table0_counter"
- alias: "table0_counter"
- }
- spec {
- unit: PACKETS
- }
- direct_table_id: 33617813
-}
diff --git a/tools/test/p4src/p4-14/p4c-out/ecmp.json b/tools/test/p4src/p4-14/p4c-out/ecmp.json
deleted file mode 100644
index 5de22a5..0000000
--- a/tools/test/p4src/p4-14/p4c-out/ecmp.json
+++ /dev/null
@@ -1,953 +0,0 @@
-{
- "program" : "ecmp.p4",
- "__meta__" : {
- "version" : [2, 7],
- "compiler" : "https://github.com/p4lang/p4c"
- },
- "header_types" : [
- {
- "name" : "scalars_0",
- "id" : 0,
- "fields" : [
- ["tmp", 64, false],
- ["tmp_0", 32, false],
- ["tmp_1", 32, false]
- ]
- },
- {
- "name" : "ethernet_t",
- "id" : 1,
- "fields" : [
- ["dstAddr", 48, false],
- ["srcAddr", 48, false],
- ["etherType", 16, false]
- ]
- },
- {
- "name" : "ipv4_t",
- "id" : 2,
- "fields" : [
- ["version", 4, false],
- ["ihl", 4, false],
- ["diffserv", 8, false],
- ["totalLen", 16, false],
- ["identification", 16, false],
- ["flags", 3, false],
- ["fragOffset", 13, false],
- ["ttl", 8, false],
- ["protocol", 8, false],
- ["hdrChecksum", 16, false],
- ["srcAddr", 32, false],
- ["dstAddr", 32, false]
- ]
- },
- {
- "name" : "tcp_t",
- "id" : 3,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["seqNo", 32, false],
- ["ackNo", 32, false],
- ["dataOffset", 4, false],
- ["res", 3, false],
- ["ecn", 3, false],
- ["ctrl", 6, false],
- ["window", 16, false],
- ["checksum", 16, false],
- ["urgentPtr", 16, false]
- ]
- },
- {
- "name" : "udp_t",
- "id" : 4,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["length_", 16, false],
- ["checksum", 16, false]
- ]
- },
- {
- "name" : "ecmp_metadata_t",
- "id" : 5,
- "fields" : [
- ["groupId", 16, false],
- ["selector", 16, false],
- ["groupSize", 32, false]
- ]
- },
- {
- "name" : "intrinsic_metadata_t",
- "id" : 6,
- "fields" : [
- ["ingress_global_timestamp", 32, false],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["egress_rid", 16, false]
- ]
- },
- {
- "name" : "standard_metadata",
- "id" : 7,
- "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],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["resubmit_flag", 1, false],
- ["egress_rid", 16, false],
- ["_padding", 5, 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
- },
- {
- "name" : "ipv4",
- "id" : 3,
- "header_type" : "ipv4_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "tcp",
- "id" : 4,
- "header_type" : "tcp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "udp",
- "id" : 5,
- "header_type" : "udp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "ecmp_metadata",
- "id" : 6,
- "header_type" : "ecmp_metadata_t",
- "metadata" : true,
- "pi_omit" : true
- },
- {
- "name" : "intrinsic_metadata",
- "id" : 7,
- "header_type" : "intrinsic_metadata_t",
- "metadata" : true,
- "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]
- ],
- "enums" : [],
- "parsers" : [
- {
- "name" : "parser",
- "id" : 0,
- "init_state" : "start",
- "parse_states" : [
- {
- "name" : "parse_ethernet",
- "id" : 0,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ethernet"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x0800",
- "mask" : null,
- "next_state" : "parse_ipv4"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ethernet", "etherType"]
- }
- ]
- },
- {
- "name" : "parse_ipv4",
- "id" : 1,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ipv4"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x000006",
- "mask" : null,
- "next_state" : "parse_tcp"
- },
- {
- "value" : "0x000011",
- "mask" : null,
- "next_state" : "parse_udp"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ipv4", "fragOffset"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "protocol"]
- }
- ]
- },
- {
- "name" : "parse_tcp",
- "id" : 2,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "tcp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "parse_udp",
- "id" : 3,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "udp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "start",
- "id" : 4,
- "parser_ops" : [],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : "parse_ethernet"
- }
- ],
- "transition_key" : []
- }
- ]
- }
- ],
- "deparsers" : [
- {
- "name" : "deparser",
- "id" : 0,
- "order" : ["ethernet", "ipv4", "udp", "tcp"]
- }
- ],
- "meter_arrays" : [],
- "counter_arrays" : [
- {
- "name" : "table0_counter",
- "id" : 0,
- "is_direct" : true,
- "binding" : "table0"
- },
- {
- "name" : "ecmp_group_table_counter",
- "id" : 1,
- "is_direct" : true,
- "binding" : "ecmp_group_table"
- },
- {
- "name" : "egress_port_counter",
- "id" : 2,
- "size" : 254,
- "is_direct" : false
- },
- {
- "name" : "ingress_port_counter",
- "id" : 3,
- "size" : 254,
- "is_direct" : false
- }
- ],
- "register_arrays" : [],
- "calculations" : [
- {
- "name" : "calc",
- "id" : 0,
- "algo" : "crc32",
- "input" : [
- {
- "type" : "field",
- "value" : ["ipv4", "srcAddr"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "dstAddr"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "protocol"]
- },
- {
- "type" : "field",
- "value" : ["tcp", "srcPort"]
- },
- {
- "type" : "field",
- "value" : ["tcp", "dstPort"]
- },
- {
- "type" : "field",
- "value" : ["udp", "srcPort"]
- },
- {
- "type" : "field",
- "value" : ["udp", "dstPort"]
- }
- ]
- }
- ],
- "learn_lists" : [],
- "actions" : [
- {
- "name" : "NoAction",
- "id" : 0,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 1,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 2,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "set_egress_port",
- "id" : 3,
- "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" : "include/actions.p4",
- "line" : 1,
- "column" : 23,
- "source_fragment" : "port) { ..."
- }
- }
- ]
- },
- {
- "name" : "set_egress_port",
- "id" : 4,
- "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" : "include/actions.p4",
- "line" : 1,
- "column" : 23,
- "source_fragment" : "port) { ..."
- }
- }
- ]
- },
- {
- "name" : "ecmp_group",
- "id" : 5,
- "runtime_data" : [
- {
- "name" : "groupId",
- "bitwidth" : 16
- },
- {
- "name" : "groupSize",
- "bitwidth" : 32
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ecmp_metadata", "groupId"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "ecmp.p4",
- "line" : 35,
- "column" : 18,
- "source_fragment" : "groupId, groupSize) { ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ecmp_metadata", "groupSize"]
- },
- {
- "type" : "runtime_data",
- "value" : 1
- }
- ],
- "source_info" : {
- "filename" : "ecmp.p4",
- "line" : 35,
- "column" : 27,
- "source_fragment" : "groupSize) { ..."
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "local",
- "value" : 1
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffffffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "modify_field_with_hash_based_offset",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["ecmp_metadata", "selector"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00000000"
- },
- {
- "type" : "calculation",
- "value" : "calc"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- }
- ],
- "source_info" : {
- "filename" : "ecmp.p4",
- "line" : 38,
- "column" : 4,
- "source_fragment" : "modify_field_with_hash_based_offset(ecmp_metadata.selector, 0, ecmp_hash, groupSize)"
- }
- }
- ]
- },
- {
- "name" : "send_to_cpu",
- "id" : 6,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 10,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 255)"
- }
- }
- ]
- },
- {
- "name" : "drop",
- "id" : 7,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 6,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 511)"
- }
- }
- ]
- },
- {
- "name" : "count_packet",
- "id" : 8,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "ingress_port"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "ingress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 20,
- "column" : 4,
- "source_fragment" : "count(ingress_port_counter, standard_metadata.ingress_port)"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp_1"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "egress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp_1"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 21,
- "column" : 4,
- "source_fragment" : "count(egress_port_counter, standard_metadata.egress_spec)"
- }
- }
- ]
- }
- ],
- "pipelines" : [
- {
- "name" : "ingress",
- "id" : 0,
- "init_table" : "table0",
- "tables" : [
- {
- "name" : "table0",
- "id" : 0,
- "source_info" : {
- "filename" : "ecmp.p4",
- "line" : 41,
- "column" : 0,
- "source_fragment" : "table table0 { ..."
- },
- "key" : [
- {
- "match_type" : "ternary",
- "target" : ["standard_metadata", "ingress_port"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "dstAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "srcAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "etherType"],
- "mask" : null
- }
- ],
- "match_type" : "ternary",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [4, 5, 6, 7, 1],
- "actions" : ["set_egress_port", "ecmp_group", "send_to_cpu", "drop", "NoAction"],
- "base_default_next" : "node_4",
- "next_tables" : {
- "ecmp_group" : "ecmp_group_table",
- "set_egress_port" : "node_4",
- "send_to_cpu" : "node_4",
- "drop" : "node_4",
- "NoAction" : "node_4"
- },
- "default_entry" : {
- "action_id" : 1,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "ecmp_group_table",
- "id" : 1,
- "source_info" : {
- "filename" : "ecmp.p4",
- "line" : 57,
- "column" : 0,
- "source_fragment" : "table ecmp_group_table { ..."
- },
- "key" : [
- {
- "match_type" : "exact",
- "target" : ["ecmp_metadata", "groupId"],
- "mask" : null
- },
- {
- "match_type" : "exact",
- "target" : ["ecmp_metadata", "selector"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [3, 0],
- "actions" : ["set_egress_port", "NoAction"],
- "base_default_next" : "node_4",
- "next_tables" : {
- "set_egress_port" : "node_4",
- "NoAction" : "node_4"
- },
- "default_entry" : {
- "action_id" : 0,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "port_count_table",
- "id" : 2,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 13,
- "column" : 0,
- "source_fragment" : "table port_count_table { ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [8, 2],
- "actions" : ["count_packet", "NoAction"],
- "base_default_next" : null,
- "next_tables" : {
- "count_packet" : null,
- "NoAction" : null
- },
- "default_entry" : {
- "action_id" : 2,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- }
- ],
- "action_profiles" : [],
- "conditionals" : [
- {
- "name" : "node_4",
- "id" : 0,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 26,
- "column" : 35,
- "source_fragment" : "<"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "<",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00fe"
- }
- }
- },
- "false_next" : null,
- "true_next" : "port_count_table"
- }
- ]
- },
- {
- "name" : "egress",
- "id" : 1,
- "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.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"]
- ]
- ]
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/p4c-out/ecmp.p4info b/tools/test/p4src/p4-14/p4c-out/ecmp.p4info
deleted file mode 100644
index fdfeff0..0000000
--- a/tools/test/p4src/p4-14/p4c-out/ecmp.p4info
+++ /dev/null
@@ -1,213 +0,0 @@
-tables {
- preamble {
- id: 33617813
- name: "table0"
- alias: "table0"
- }
- match_fields {
- id: 1
- name: "standard_metadata.ingress_port"
- bitwidth: 9
- match_type: TERNARY
- }
- match_fields {
- id: 2
- name: "ethernet.dstAddr"
- bitwidth: 48
- match_type: TERNARY
- }
- match_fields {
- id: 3
- name: "ethernet.srcAddr"
- bitwidth: 48
- match_type: TERNARY
- }
- match_fields {
- id: 4
- name: "ethernet.etherType"
- bitwidth: 16
- match_type: TERNARY
- }
- action_refs {
- id: 16794308
- }
- action_refs {
- id: 16791212
- }
- action_refs {
- id: 16829080
- }
- action_refs {
- id: 16793508
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- direct_resource_ids: 301990488
- size: 1024
- with_entry_timeout: true
-}
-tables {
- preamble {
- id: 33596222
- name: "wcmp_group_table"
- alias: "wcmp_group_table"
- }
- match_fields {
- id: 1
- name: "wcmp_meta.groupId"
- bitwidth: 16
- match_type: EXACT
- }
- match_fields {
- id: 2
- name: "wcmp_meta.selector"
- bitwidth: 32
- match_type: LPM
- }
- action_refs {
- id: 16794308
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- direct_resource_ids: 302006421
- size: 1024
-}
-tables {
- preamble {
- id: 33613026
- name: "wcmp_set_selector_table"
- alias: "wcmp_set_selector_table"
- }
- action_refs {
- id: 16819919
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- size: 1024
-}
-tables {
- preamble {
- id: 33583368
- name: "port_count_table"
- alias: "port_count_table"
- }
- action_refs {
- id: 16781545
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- size: 1024
-}
-actions {
- preamble {
- id: 16800567
- name: "NoAction"
- alias: "NoAction"
- }
-}
-actions {
- preamble {
- id: 16819919
- name: "wcmp_set_selector"
- alias: "wcmp_set_selector"
- }
-}
-actions {
- preamble {
- id: 16794308
- name: "set_egress_port"
- alias: "set_egress_port"
- }
- params {
- id: 1
- name: "port"
- bitwidth: 9
- }
-}
-actions {
- preamble {
- id: 16791212
- name: "wcmp_group"
- alias: "wcmp_group"
- }
- params {
- id: 1
- name: "groupId"
- bitwidth: 16
- }
-}
-actions {
- preamble {
- id: 16829080
- name: "send_to_cpu"
- alias: "send_to_cpu"
- }
-}
-actions {
- preamble {
- id: 16793508
- name: "drop"
- alias: "drop"
- }
-}
-actions {
- preamble {
- id: 16781545
- name: "count_packet"
- alias: "count_packet"
- }
-}
-counters {
- preamble {
- id: 302008596
- name: "egress_port_counter"
- alias: "egress_port_counter"
- annotations: "@min_width(32)"
- }
- spec {
- unit: PACKETS
- }
- size: 254
-}
-counters {
- preamble {
- id: 301991238
- name: "ingress_port_counter"
- alias: "ingress_port_counter"
- annotations: "@min_width(32)"
- }
- spec {
- unit: PACKETS
- }
- size: 254
-}
-direct_counters {
- preamble {
- id: 301990488
- name: "table0_counter"
- alias: "table0_counter"
- }
- spec {
- unit: PACKETS
- }
- direct_table_id: 33617813
-}
-direct_counters {
- preamble {
- id: 302006421
- name: "wcmp_group_table_counter"
- alias: "wcmp_group_table_counter"
- }
- spec {
- unit: PACKETS
- }
- direct_table_id: 33596222
-}
diff --git a/tools/test/p4src/p4-14/p4c-out/empty.json b/tools/test/p4src/p4-14/p4c-out/empty.json
deleted file mode 100644
index 78bbd14..0000000
--- a/tools/test/p4src/p4-14/p4c-out/empty.json
+++ /dev/null
@@ -1,246 +0,0 @@
-{
- "program" : "empty.p4",
- "__meta__" : {
- "version" : [2, 7],
- "compiler" : "https://github.com/p4lang/p4c"
- },
- "header_types" : [
- {
- "name" : "scalars_0",
- "id" : 0,
- "fields" : []
- },
- {
- "name" : "dummy_t",
- "id" : 1,
- "fields" : [
- ["dummyField", 8, false]
- ]
- },
- {
- "name" : "standard_metadata",
- "id" : 2,
- "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],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["resubmit_flag", 1, false],
- ["egress_rid", 16, false],
- ["_padding", 5, 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" : "dummy_metadata",
- "id" : 2,
- "header_type" : "dummy_t",
- "metadata" : true,
- "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]
- ],
- "enums" : [],
- "parsers" : [
- {
- "name" : "parser",
- "id" : 0,
- "init_state" : "start",
- "parse_states" : [
- {
- "name" : "start",
- "id" : 0,
- "parser_ops" : [],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- }
- ]
- }
- ],
- "deparsers" : [
- {
- "name" : "deparser",
- "id" : 0,
- "order" : []
- }
- ],
- "meter_arrays" : [],
- "counter_arrays" : [],
- "register_arrays" : [],
- "calculations" : [],
- "learn_lists" : [],
- "actions" : [
- {
- "name" : "NoAction",
- "id" : 0,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "dummy_action",
- "id" : 1,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["dummy_metadata", "dummyField"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01"
- }
- ],
- "source_info" : {
- "filename" : "empty.p4",
- "line" : 23,
- "column" : 4,
- "source_fragment" : "modify_field(dummy_metadata.dummyField, 1)"
- }
- }
- ]
- }
- ],
- "pipelines" : [
- {
- "name" : "ingress",
- "id" : 0,
- "init_table" : "table0",
- "tables" : [
- {
- "name" : "table0",
- "id" : 0,
- "source_info" : {
- "filename" : "empty.p4",
- "line" : 13,
- "column" : 0,
- "source_fragment" : "table table0 { ..."
- },
- "key" : [
- {
- "match_type" : "exact",
- "target" : ["dummy_metadata", "dummyField"],
- "mask" : null
- }
- ],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [1, 0],
- "actions" : ["dummy_action", "NoAction"],
- "base_default_next" : null,
- "next_tables" : {
- "dummy_action" : null,
- "NoAction" : null
- },
- "default_entry" : {
- "action_id" : 0,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- }
- ],
- "action_profiles" : [],
- "conditionals" : []
- },
- {
- "name" : "egress",
- "id" : 1,
- "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.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"]
- ]
- ]
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/p4c-out/empty.p4info b/tools/test/p4src/p4-14/p4c-out/empty.p4info
deleted file mode 100644
index 956f48a..0000000
--- a/tools/test/p4src/p4-14/p4c-out/empty.p4info
+++ /dev/null
@@ -1,35 +0,0 @@
-tables {
- preamble {
- id: 33617813
- name: "table0"
- alias: "table0"
- }
- match_fields {
- id: 1
- name: "dummy_metadata.dummyField"
- bitwidth: 8
- match_type: EXACT
- }
- action_refs {
- id: 16836827
- }
- action_refs {
- id: 16800567
- annotations: "@defaultonly()"
- }
- size: 1024
-}
-actions {
- preamble {
- id: 16800567
- name: "NoAction"
- alias: "NoAction"
- }
-}
-actions {
- preamble {
- id: 16836827
- name: "dummy_action"
- alias: "dummy_action"
- }
-}
diff --git a/tools/test/p4src/p4-14/p4c-out/wcmp.json b/tools/test/p4src/p4-14/p4c-out/wcmp.json
deleted file mode 100644
index 173dfe1..0000000
--- a/tools/test/p4src/p4-14/p4c-out/wcmp.json
+++ /dev/null
@@ -1,1058 +0,0 @@
-{
- "program" : "wcmp.p4",
- "__meta__" : {
- "version" : [2, 7],
- "compiler" : "https://github.com/p4lang/p4c"
- },
- "header_types" : [
- {
- "name" : "scalars_0",
- "id" : 0,
- "fields" : [
- ["tmp", 32, false],
- ["tmp_0", 32, false]
- ]
- },
- {
- "name" : "ethernet_t",
- "id" : 1,
- "fields" : [
- ["dstAddr", 48, false],
- ["srcAddr", 48, false],
- ["etherType", 16, false]
- ]
- },
- {
- "name" : "ipv4_t",
- "id" : 2,
- "fields" : [
- ["version", 4, false],
- ["ihl", 4, false],
- ["diffserv", 8, false],
- ["totalLen", 16, false],
- ["identification", 16, false],
- ["flags", 3, false],
- ["fragOffset", 13, false],
- ["ttl", 8, false],
- ["protocol", 8, false],
- ["hdrChecksum", 16, false],
- ["srcAddr", 32, false],
- ["dstAddr", 32, false]
- ]
- },
- {
- "name" : "tcp_t",
- "id" : 3,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["seqNo", 32, false],
- ["ackNo", 32, false],
- ["dataOffset", 4, false],
- ["res", 3, false],
- ["ecn", 3, false],
- ["ctrl", 6, false],
- ["window", 16, false],
- ["checksum", 16, false],
- ["urgentPtr", 16, false]
- ]
- },
- {
- "name" : "udp_t",
- "id" : 4,
- "fields" : [
- ["srcPort", 16, false],
- ["dstPort", 16, false],
- ["length_", 16, false],
- ["checksum", 16, false]
- ]
- },
- {
- "name" : "intrinsic_metadata_t",
- "id" : 5,
- "fields" : [
- ["ingress_global_timestamp", 32, false],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["egress_rid", 16, false]
- ]
- },
- {
- "name" : "wcmp_meta_t",
- "id" : 6,
- "fields" : [
- ["groupId", 16, false],
- ["numBits", 8, false],
- ["selector", 32, false]
- ]
- },
- {
- "name" : "standard_metadata",
- "id" : 7,
- "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],
- ["lf_field_list", 32, false],
- ["mcast_grp", 16, false],
- ["resubmit_flag", 1, false],
- ["egress_rid", 16, false],
- ["_padding", 5, 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
- },
- {
- "name" : "ipv4",
- "id" : 3,
- "header_type" : "ipv4_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "tcp",
- "id" : 4,
- "header_type" : "tcp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "udp",
- "id" : 5,
- "header_type" : "udp_t",
- "metadata" : false,
- "pi_omit" : true
- },
- {
- "name" : "intrinsic_metadata",
- "id" : 6,
- "header_type" : "intrinsic_metadata_t",
- "metadata" : true,
- "pi_omit" : true
- },
- {
- "name" : "wcmp_meta",
- "id" : 7,
- "header_type" : "wcmp_meta_t",
- "metadata" : true,
- "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]
- ],
- "enums" : [],
- "parsers" : [
- {
- "name" : "parser",
- "id" : 0,
- "init_state" : "start",
- "parse_states" : [
- {
- "name" : "parse_ethernet",
- "id" : 0,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ethernet"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x0800",
- "mask" : null,
- "next_state" : "parse_ipv4"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ethernet", "etherType"]
- }
- ]
- },
- {
- "name" : "parse_ipv4",
- "id" : 1,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "ipv4"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "0x000006",
- "mask" : null,
- "next_state" : "parse_tcp"
- },
- {
- "value" : "0x000011",
- "mask" : null,
- "next_state" : "parse_udp"
- },
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : [
- {
- "type" : "field",
- "value" : ["ipv4", "fragOffset"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "protocol"]
- }
- ]
- },
- {
- "name" : "parse_tcp",
- "id" : 2,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "tcp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "parse_udp",
- "id" : 3,
- "parser_ops" : [
- {
- "parameters" : [
- {
- "type" : "regular",
- "value" : "udp"
- }
- ],
- "op" : "extract"
- }
- ],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : null
- }
- ],
- "transition_key" : []
- },
- {
- "name" : "start",
- "id" : 4,
- "parser_ops" : [],
- "transitions" : [
- {
- "value" : "default",
- "mask" : null,
- "next_state" : "parse_ethernet"
- }
- ],
- "transition_key" : []
- }
- ]
- }
- ],
- "deparsers" : [
- {
- "name" : "deparser",
- "id" : 0,
- "order" : ["ethernet", "ipv4", "udp", "tcp"]
- }
- ],
- "meter_arrays" : [],
- "counter_arrays" : [
- {
- "name" : "table0_counter",
- "id" : 0,
- "is_direct" : true,
- "binding" : "table0"
- },
- {
- "name" : "wcmp_group_table_counter",
- "id" : 1,
- "is_direct" : true,
- "binding" : "wcmp_group_table"
- },
- {
- "name" : "egress_port_counter",
- "id" : 2,
- "size" : 254,
- "is_direct" : false
- },
- {
- "name" : "ingress_port_counter",
- "id" : 3,
- "size" : 254,
- "is_direct" : false
- }
- ],
- "register_arrays" : [],
- "calculations" : [
- {
- "name" : "calc",
- "id" : 0,
- "algo" : "crc32",
- "input" : [
- {
- "type" : "field",
- "value" : ["ipv4", "srcAddr"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "dstAddr"]
- },
- {
- "type" : "field",
- "value" : ["ipv4", "protocol"]
- },
- {
- "type" : "field",
- "value" : ["tcp", "srcPort"]
- },
- {
- "type" : "field",
- "value" : ["tcp", "dstPort"]
- },
- {
- "type" : "field",
- "value" : ["udp", "srcPort"]
- },
- {
- "type" : "field",
- "value" : ["udp", "dstPort"]
- }
- ]
- }
- ],
- "learn_lists" : [],
- "actions" : [
- {
- "name" : "NoAction",
- "id" : 0,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 1,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 2,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "NoAction",
- "id" : 3,
- "runtime_data" : [],
- "primitives" : []
- },
- {
- "name" : "wcmp_set_selector",
- "id" : 4,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["wcmp_meta", "selector"]
- },
- {
- "type" : "expression",
- "value" : {
- "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" : "hexstr",
- "value" : "0x01"
- },
- "right" : {
- "type" : "field",
- "value" : ["wcmp_meta", "numBits"]
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- },
- "right" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "expression",
- "value" : {
- "op" : "-",
- "left" : {
- "type" : "hexstr",
- "value" : "0x20"
- },
- "right" : {
- "type" : "field",
- "value" : ["wcmp_meta", "numBits"]
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xff"
- }
- }
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ],
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 43,
- "column" : 4,
- "source_fragment" : "modify_field(wcmp_meta.selector, ..."
- }
- }
- ]
- },
- {
- "name" : "set_egress_port",
- "id" : 5,
- "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" : "include/actions.p4",
- "line" : 1,
- "column" : 23,
- "source_fragment" : "port) { ..."
- }
- }
- ]
- },
- {
- "name" : "wcmp_group",
- "id" : 6,
- "runtime_data" : [
- {
- "name" : "groupId",
- "bitwidth" : 16
- }
- ],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["wcmp_meta", "groupId"]
- },
- {
- "type" : "runtime_data",
- "value" : 0
- }
- ],
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 37,
- "column" : 18,
- "source_fragment" : "groupId) { ..."
- }
- },
- {
- "op" : "modify_field_with_hash_based_offset",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["wcmp_meta", "numBits"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00000002"
- },
- {
- "type" : "calculation",
- "value" : "calc"
- },
- {
- "type" : "hexstr",
- "value" : "0x000000000000001e"
- }
- ],
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 39,
- "column" : 4,
- "source_fragment" : "modify_field_with_hash_based_offset(wcmp_meta.numBits, 2, wcmp_hash, (32 - 2))"
- }
- }
- ]
- },
- {
- "name" : "send_to_cpu",
- "id" : 7,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x00ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 10,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 255)"
- }
- }
- ]
- },
- {
- "name" : "drop",
- "id" : 8,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- {
- "type" : "hexstr",
- "value" : "0x01ff"
- }
- ],
- "source_info" : {
- "filename" : "include/actions.p4",
- "line" : 6,
- "column" : 4,
- "source_fragment" : "modify_field(standard_metadata.egress_spec, 511)"
- }
- }
- ]
- },
- {
- "name" : "set_egress_port",
- "id" : 9,
- "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" : "include/actions.p4",
- "line" : 1,
- "column" : 23,
- "source_fragment" : "port) { ..."
- }
- }
- ]
- },
- {
- "name" : "count_packet",
- "id" : 10,
- "runtime_data" : [],
- "primitives" : [
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "ingress_port"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "ingress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 20,
- "column" : 4,
- "source_fragment" : "count(ingress_port_counter, standard_metadata.ingress_port)"
- }
- },
- {
- "op" : "assign",
- "parameters" : [
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- },
- {
- "type" : "expression",
- "value" : {
- "type" : "expression",
- "value" : {
- "op" : "&",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0xffffffff"
- }
- }
- }
- }
- ]
- },
- {
- "op" : "count",
- "parameters" : [
- {
- "type" : "counter_array",
- "value" : "egress_port_counter"
- },
- {
- "type" : "field",
- "value" : ["scalars", "tmp_0"]
- }
- ],
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 21,
- "column" : 4,
- "source_fragment" : "count(egress_port_counter, standard_metadata.egress_spec)"
- }
- }
- ]
- }
- ],
- "pipelines" : [
- {
- "name" : "ingress",
- "id" : 0,
- "init_table" : "table0",
- "tables" : [
- {
- "name" : "table0",
- "id" : 0,
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 47,
- "column" : 0,
- "source_fragment" : "table table0 { ..."
- },
- "key" : [
- {
- "match_type" : "ternary",
- "target" : ["standard_metadata", "ingress_port"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "dstAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "srcAddr"],
- "mask" : null
- },
- {
- "match_type" : "ternary",
- "target" : ["ethernet", "etherType"],
- "mask" : null
- }
- ],
- "match_type" : "ternary",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [5, 6, 7, 8, 0],
- "actions" : ["set_egress_port", "wcmp_group", "send_to_cpu", "drop", "NoAction"],
- "base_default_next" : "node_5",
- "next_tables" : {
- "wcmp_group" : "wcmp_set_selector_table",
- "set_egress_port" : "node_5",
- "send_to_cpu" : "node_5",
- "drop" : "node_5",
- "NoAction" : "node_5"
- },
- "default_entry" : {
- "action_id" : 0,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "wcmp_set_selector_table",
- "id" : 1,
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 63,
- "column" : 0,
- "source_fragment" : "table wcmp_set_selector_table { ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [4, 2],
- "actions" : ["wcmp_set_selector", "NoAction"],
- "base_default_next" : "node_5",
- "next_tables" : {
- "wcmp_set_selector" : "wcmp_group_table",
- "NoAction" : "node_5"
- },
- "default_entry" : {
- "action_id" : 2,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "wcmp_group_table",
- "id" : 2,
- "source_info" : {
- "filename" : "wcmp.p4",
- "line" : 69,
- "column" : 0,
- "source_fragment" : "table wcmp_group_table { ..."
- },
- "key" : [
- {
- "match_type" : "exact",
- "target" : ["wcmp_meta", "groupId"],
- "mask" : null
- },
- {
- "match_type" : "lpm",
- "target" : ["wcmp_meta", "selector"],
- "mask" : null
- }
- ],
- "match_type" : "lpm",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : true,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [9, 1],
- "actions" : ["set_egress_port", "NoAction"],
- "base_default_next" : "node_5",
- "next_tables" : {
- "set_egress_port" : "node_5",
- "NoAction" : "node_5"
- },
- "default_entry" : {
- "action_id" : 1,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- },
- {
- "name" : "port_count_table",
- "id" : 3,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 13,
- "column" : 0,
- "source_fragment" : "table port_count_table { ..."
- },
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [10, 3],
- "actions" : ["count_packet", "NoAction"],
- "base_default_next" : null,
- "next_tables" : {
- "count_packet" : null,
- "NoAction" : null
- },
- "default_entry" : {
- "action_id" : 3,
- "action_const" : false,
- "action_data" : [],
- "action_entry_const" : false
- }
- }
- ],
- "action_profiles" : [],
- "conditionals" : [
- {
- "name" : "node_5",
- "id" : 0,
- "source_info" : {
- "filename" : "include/port_counters.p4",
- "line" : 26,
- "column" : 35,
- "source_fragment" : "<"
- },
- "expression" : {
- "type" : "expression",
- "value" : {
- "op" : "<",
- "left" : {
- "type" : "field",
- "value" : ["standard_metadata", "egress_spec"]
- },
- "right" : {
- "type" : "hexstr",
- "value" : "0x00fe"
- }
- }
- },
- "false_next" : null,
- "true_next" : "port_count_table"
- }
- ]
- },
- {
- "name" : "egress",
- "id" : 1,
- "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.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"]
- ]
- ]
-}
\ No newline at end of file
diff --git a/tools/test/p4src/p4-14/wcmp.p4 b/tools/test/p4src/p4-14/wcmp.p4
deleted file mode 100644
index d24183f..0000000
--- a/tools/test/p4src/p4-14/wcmp.p4
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "include/defines.p4"
-#include "include/headers.p4"
-#include "include/parser.p4"
-#include "include/actions.p4"
-#include "include/port_counters.p4"
-
-#define SELECTOR_WIDTH 32
-
-header_type wcmp_meta_t {
- fields {
- groupId : 16;
- numBits: 8;
- selector : SELECTOR_WIDTH;
- }
-}
-
-metadata wcmp_meta_t wcmp_meta;
-
-field_list wcmp_hash_fields {
- ipv4.srcAddr;
- ipv4.dstAddr;
- ipv4.protocol;
- tcp.srcPort;
- tcp.dstPort;
- udp.srcPort;
- udp.dstPort;
-}
-
-field_list_calculation wcmp_hash {
- input {
- wcmp_hash_fields;
- }
- algorithm : crc32;
- output_width : 32;
-}
-
-action wcmp_group(groupId) {
- modify_field(wcmp_meta.groupId, groupId);
- modify_field_with_hash_based_offset(wcmp_meta.numBits, 2, wcmp_hash, (SELECTOR_WIDTH - 2));
-}
-
-action wcmp_set_selector() {
- modify_field(wcmp_meta.selector,
- (((1 << wcmp_meta.numBits) - 1) << (SELECTOR_WIDTH - wcmp_meta.numBits)));
-}
-
-table table0 {
- reads {
- standard_metadata.ingress_port : ternary;
- ethernet.dstAddr : ternary;
- ethernet.srcAddr : ternary;
- ethernet.etherType : ternary;
- }
- actions {
- set_egress_port;
- wcmp_group;
- send_to_cpu;
- drop;
- }
- support_timeout: true;
-}
-
-table wcmp_set_selector_table {
- actions {
- wcmp_set_selector;
- }
-}
-
-table wcmp_group_table {
- reads {
- wcmp_meta.groupId : exact;
- wcmp_meta.selector : lpm;
- }
- actions {
- set_egress_port;
- }
-}
-
-counter table0_counter {
- type: packets;
- direct: table0;
- min_width : 32;
-}
-
-counter wcmp_group_table_counter {
- type: packets;
- direct: wcmp_group_table;
- min_width : 32;
-}
-
-control ingress {
- apply(table0) {
- wcmp_group {
- apply(wcmp_set_selector_table) {
- wcmp_set_selector {
- apply(wcmp_group_table);
- }
- }
- }
- }
- process_port_counters();
-}
\ No newline at end of file