Support for Tofino pipeconfs in ECMP app
Change-Id: I34c16f5f349c480f53b1bfc6a1fd91ec5a328ee3
diff --git a/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.characterize.log b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.characterize.log
new file mode 100644
index 0000000..ea74364
--- /dev/null
+++ b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/mavericks/logs/mau.characterize.log
@@ -0,0 +1,387 @@
++---------------------------------------------------------------------+
+| Log file: mau.characterize.log |
+| Compiler version: 5.1.0 (fca32d1) |
+| Created on: Thu Sep 7 14:48:49 2017 |
++---------------------------------------------------------------------+
+
+Match+Action Resource Usage
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
+| Table | Dir | Stage | P4 | Mem | Total | Total | Table | Match | TCAM | SRAM | Match | Imm. | TCAM | SRAM | P4 | Action | Ideal | Actual | TCAM | SRAM | SRAM |
+| Name | | | Lookup | Type | SRAMs | TCAMs | Entries | Bits | Over- | Over- | Overhead | Action | Bits | Bits | Action | Bits | Match | Match | Match | Match | Action |
+| | | | Type(s) | | TOT(M/A/S/MT/I) | | Requested | Per | head | head | Structure | Data | Per | Per | Bits | Per | Entries- | Entries- | Packing | Packing | Packing |
+| | | | | | (legend | | / | Entry | Bits | Bits | NT/AI/AD/M/S/SL/V/I | in | Entry | Entry | | Entry | Number | Number | Eff. | Eff. | Eff. |
+| | | | | | below) | | Allocated | R/A(diff) | Per | Per | (legend | Overhead | R/A(diff) | R/A(diff) | | R/A(diff) | Per | Per | Ideal/ | Ideal/ | Ideal/ |
+| | | | | | | | (diff) | | Entry | Entry | below) | R/A(diff) | | | | | Memory | Memory | Actual | Actual | Actual |
+| | | | | | | | | | ver/vld | | | | | | | | Units | Units | | | |
+| | | | | | | | | | | | | | | | | | (bits) | (bits) | | | |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+| ingress_pkt | ingress | 0 | | - | 0 (0/0/0/0/0) | 0 | 1024 / 1 (-1023) | 0 / 0 (0) | 0 | 0 | 0/0/0/0/0/0/0/0 | 0 / 0 (0) | 0 / 0 (0) | 0 / 0 (0) | 0 | 0 / 0 (0) | 0 in 0 (0) | 1 in 0 (0) | - / - | - / - | - / - |
+| egress_pkt | egress | 0 | | - | 0 (0/0/0/0/0) | 0 | 1024 / 1 (-1023) | 0 / 0 (0) | 0 | 0 | 0/0/0/0/0/0/0/0 | 0 / 0 (0) | 0 / 0 (0) | 0 / 0 (0) | 0 | 0 / 0 (0) | 0 in 0 (0) | 1 in 0 (0) | - / - | - / - | - / - |
+| stage 0 totals | - | - | - | - | 0 (0/0/0/0/0) | 0 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
+| | | | | | | | | | | | | | | | | | | | | | |
+| table0 | ingress | 1 | ternary | tcam | 4 (0/1/2/0/1) | 3 | 512 / 512 (0) | 121 / 121 (0) | 4 | 5 | 1/4/0/0/0/0/0/0 | 0 / 0 (0) | 125 / 132 (7) | 5 / 8 (3) | 16 | 16 / 16 (0) | 1 in 3 (132) | 1 in 3 (132) | 91.7% / 91.7% | - / - | 100.0% / 100.0% |
+| stage 1 totals | - | - | - | - | 4 (0/1/2/0/1) | 3 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
+| | | | | | | | | | | | | | | | | | | | | | |
+| ecmp_group_table | ingress | 2 | exact | sram | 5 (3/0/2/0/0) | 0 | 1024 / 3072 (2048) | 32 / 22 (-10) | 0 | 20 | 0/0/0/0/0/0/4/16 | 9 / 16 (7) | 0 / 0 (0) | 52 / 42 (-10) | 9 | 0 / 0 (0) | 3 in 1 (128) | 1 in 1 (128) | - / - | 96.1% / 29.7% | - / - |
+| stage 2 totals | - | - | - | - | 5 (3/0/2/0/0) | 0 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
+| | | | | | | | | | | | | | | | | | | | | | |
+| ingress_port_count_table | ingress | 3 | | - | 2 (0/0/2/0/0) | 0 | 1024 / 1 (-1023) | 0 / 0 (0) | 0 | 0 | 0/0/0/0/0/0/0/0 | 0 / 0 (0) | 0 / 0 (0) | 0 / 0 (0) | 0 | 0 / 0 (0) | 0 in 0 (0) | 1 in 0 (0) | - / - | - / - | - / - |
+| egress_port_count_table | ingress | 3 | | - | 2 (0/0/2/0/0) | 0 | 1024 / 1 (-1023) | 0 / 0 (0) | 0 | 0 | 0/0/0/0/0/0/0/0 | 0 / 0 (0) | 0 / 0 (0) | 0 / 0 (0) | 0 | 0 / 0 (0) | 0 in 0 (0) | 1 in 0 (0) | - / - | - / - | - / - |
+| stage 3 totals | - | - | - | - | 4 (0/0/4/0/0) | 0 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
+| | | | | | | | | | | | | | | | | | | | | | |
+| overall totals | - | - | - | - | 13 (3/1/8/0/1) | 3 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+Total SRAMs Legend:
+TOT (M/A/S/MT/I)
+TOT = Total
+M = Match
+A = Action
+S = Statistics
+MT = Meter / Stateful / Selection
+I = Ternary Indirection
+
+Match Overhead Structure Legend:
+NT/AI/AD/M/S/SL/V/I
+NT = Next Table Pointer
+AI = Action Instruction Pointer
+AD = Action Data Pointer
+M = Meter/Selection/Stateful Pointer
+S = Statistics Pointer
+SL = Selection Length
+V = Entry Version
+I = Immediate Action Data
+
+
+
+
+
++----------------------------------------------------------------+
+ OVERHEAD STRUCTURES
++----------------------------------------------------------------+
+
++----------------------------------------------------------------+
+ ingress_port_count_table
++----------------------------------------------------------------+
+Match Overhead:
+ Field --instruction_address-- [1:0] (2 bits)
+ Field --statistics_pointer-- [19:0] (20 bits)
+
+ Total bits: 22
++----------------------------------------------------------------+
+ egress_port_count_table
++----------------------------------------------------------------+
+Match Overhead:
+ Field --statistics_pointer-- [19:0] (20 bits)
+
+ Total bits: 20
++----------------------------------------------------------------+
+ ingress_pkt
++----------------------------------------------------------------+
+Match Overhead:
+ Field --instruction_address-- [1:0] (2 bits)
+
+ Total bits: 2
++----------------------------------------------------------------+
+ egress_pkt
++----------------------------------------------------------------+
+Match Overhead:
+ Field --instruction_address-- [1:0] (2 bits)
+
+ Total bits: 2
++----------------------------------------------------------------+
+ table0
++----------------------------------------------------------------+
+Match Overhead:
+ Field --next_table-- [0:0] (1 bits)
+ Field --instruction_address-- [3:0] (4 bits)
+
+ Total bits: 5
++----------------------------------------------------------------+
+ ecmp_group_table
++----------------------------------------------------------------+
+Match Overhead:
+ Field --version_valid-- [3:0] (4 bits)
+ Field --immediate-- [15:0] (16 bits)
+
+ Total bits: 20
+
+
+
+
+
++----------------------------------------------------------------+
+ ingress_port_count_table__action__:
++----------------------------------------------------------------+
+
+Action count_ingress:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 1
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- is 0 bits : in bits [127:0]
+]
+
++----------------------------------------------------------------+
+ egress_port_count_table__action__:
++----------------------------------------------------------------+
+
+Action count_egress:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 1
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- is 0 bits : in bits [127:0]
+]
+
++----------------------------------------------------------------+
+ ingress_pkt__action__:
++----------------------------------------------------------------+
+
+Action _packet_out:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 1
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- is 0 bits : in bits [127:0]
+]
+
++----------------------------------------------------------------+
+ egress_pkt__action__:
++----------------------------------------------------------------+
+
+Action add_packet_in_hdr:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 1
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- is 0 bits : in bits [127:0]
+]
+
++----------------------------------------------------------------+
+ table0__action__:
++----------------------------------------------------------------+
+
+Action set_egress_port:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 8
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 7
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [127:121]
+ Field port [8:0] : in bits [120:112]
+ entry_number : 6
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [111:105]
+ Field port [8:0] : in bits [104:96]
+ entry_number : 5
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [95:89]
+ Field port [8:0] : in bits [88:80]
+ entry_number : 4
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [79:73]
+ Field port [8:0] : in bits [72:64]
+ entry_number : 3
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [63:57]
+ Field port [8:0] : in bits [56:48]
+ entry_number : 2
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [47:41]
+ Field port [8:0] : in bits [40:32]
+ entry_number : 1
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [31:25]
+ Field port [8:0] : in bits [24:16]
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- [6:0] : in bits [15:9]
+ Field port [8:0] : in bits [8:0]
+]
+
+
+Action ecmp_group:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 8
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 7
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [127:112]
+ entry_number : 6
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [111:96]
+ entry_number : 5
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [95:80]
+ entry_number : 4
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [79:64]
+ entry_number : 3
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [63:48]
+ entry_number : 2
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [47:32]
+ entry_number : 1
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [31:16]
+ entry_number : 0
+ field_list : [
+ ]
+ Field groupId [15:0] : in bits [15:0]
+]
+
+
+Action send_to_cpu:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 8
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 7
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [127:112]
+ entry_number : 6
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [111:96]
+ entry_number : 5
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [95:80]
+ entry_number : 4
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [79:64]
+ entry_number : 3
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [63:48]
+ entry_number : 2
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [47:32]
+ entry_number : 1
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [31:16]
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [15:0]
+]
+
+
+Action _drop:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 8
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 7
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [127:112]
+ entry_number : 6
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [111:96]
+ entry_number : 5
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [95:80]
+ entry_number : 4
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [79:64]
+ entry_number : 3
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [63:48]
+ entry_number : 2
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [47:32]
+ entry_number : 1
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [31:16]
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- [15:0] : in bits [15:0]
+]
+
++----------------------------------------------------------------+
+ ecmp_group_table__action__:
++----------------------------------------------------------------+
+
+Action set_egress_port:
+---------------------------
+Pack Format:
+ table_word_width: 128
+ memory_word_width: 128
+ entries_per_table_word: 1
+ number_memory_units_per_table_word: 1
+ entry_list: [
+ entry_number : 0
+ field_list : [
+ ]
+ Field --padding-- is 0 bits : in bits [127:0]
+]
+
+