Support for Tofino pipeconfs in ECMP app

Change-Id: I34c16f5f349c480f53b1bfc6a1fd91ec5a328ee3
diff --git a/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/montara/logs/mau.gateway.log b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/montara/logs/mau.gateway.log
new file mode 100644
index 0000000..570947f
--- /dev/null
+++ b/tools/test/p4src/p4-14/p4c-out/tofino/ecmp/montara/logs/mau.gateway.log
@@ -0,0 +1,3320 @@
++---------------------------------------------------------------------+
+|  Log file: mau.gateway.log                                          |
+|  Compiler version: 5.1.0 (fca32d1)                                  |
+|  Created on: Thu Sep  7 14:49:38 2017                               |
++---------------------------------------------------------------------+
+
+valid:
+  f = packet_out_hdr
+const:
+xor:
+Gateway Resource Request for P4 table _condition_0 with handle 117440513 in stage 0
+  Validity checks:
+      Field --validity_check--packet_out_hdr [0:0]
+  Fields to check against constants:
+      <none>
+  Field pairs to compare to each other:
+      <none>
+
+Gateway Resource Request for table _condition_0 needs access to 1 input bits
+
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (0, 1) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_0.
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (0, 1) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_0.
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+valid:
+  f = packet_out_hdr
+const:
+xor:
+Gateway Resource Request for P4 table _condition_1 with handle 117440514 in stage 1
+  Validity checks:
+      Field --validity_check--packet_out_hdr [0:0]
+  Fields to check against constants:
+      <none>
+  Field pairs to compare to each other:
+      <none>
+
+Gateway Resource Request for table _condition_1 needs access to 1 input bits
+
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, [0]), (1, [0])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_1 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (12, 1) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 1 for gateway
+Allocating: Gateway 15 in stage 1 for _condition_1.
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, [0]), (1, [0])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_1 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (12, 1) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 1 for gateway
+Allocating: Gateway 15 in stage 1 for _condition_1.
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+
+========================================================
+  Run Gateway Placement on Request List of size 0
+========================================================
+
+valid:
+const:
+  f = ig_intr_md_for_tm.ucast_egress_port
+xor:
+Gateway Resource Request for P4 table _condition_2 with handle 117440515 in stage 3
+  Validity checks:
+      <none>
+  Fields to check against constants:
+      Field ig_intr_md_for_tm.ucast_egress_port [8:0]
+  Field pairs to compare to each other:
+      <none>
+
+Gateway Resource Request for table _condition_2 needs access to 9 input bits
+
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_2 needs access to 9 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (130, 0)
+Byte Position 1
+  (130, 1)
+Byte Position 2
+  (130, 0)
+Byte Position 3
+  (130, 1)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 8).
+Allocating: Hash Bit 41 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 0).
+Allocating: Hash Bit 42 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 1).
+Allocating: Hash Bit 43 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 2).
+Allocating: Hash Bit 44 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 3).
+Allocating: Hash Bit 45 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 4).
+Allocating: Hash Bit 46 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 5).
+Allocating: Hash Bit 47 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 6).
+Allocating: Hash Bit 48 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 7).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.ucast_egress_port', 8), 'exact')
+  [33] = (('ig_intr_md_for_tm.ucast_egress_port', 0), 'exact')
+  [34] = (('ig_intr_md_for_tm.ucast_egress_port', 1), 'exact')
+  [35] = (('ig_intr_md_for_tm.ucast_egress_port', 2), 'exact')
+  [36] = (('ig_intr_md_for_tm.ucast_egress_port', 3), 'exact')
+  [37] = (('ig_intr_md_for_tm.ucast_egress_port', 4), 'exact')
+  [38] = (('ig_intr_md_for_tm.ucast_egress_port', 5), 'exact')
+  [39] = (('ig_intr_md_for_tm.ucast_egress_port', 6), 'exact')
+  [40] = (('ig_intr_md_for_tm.ucast_egress_port', 7), 'exact')
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 0) --> 40
+   (0, 0) --> 41
+   (0, 1) --> 42
+   (0, 2) --> 43
+   (0, 3) --> 44
+   (0, 4) --> 45
+   (0, 5) --> 46
+   (0, 6) --> 47
+   (0, 7) --> 48
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
+Allocating: Gateway 15 in stage 3 for _condition_2.
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_2 needs access to 9 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (130, 0)
+Byte Position 1
+  (130, 1)
+Byte Position 2
+  (130, 0)
+Byte Position 3
+  (130, 1)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 8).
+Allocating: Hash Bit 41 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 0).
+Allocating: Hash Bit 42 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 1).
+Allocating: Hash Bit 43 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 2).
+Allocating: Hash Bit 44 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 3).
+Allocating: Hash Bit 45 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 4).
+Allocating: Hash Bit 46 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 5).
+Allocating: Hash Bit 47 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 6).
+Allocating: Hash Bit 48 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 7).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.ucast_egress_port', 8), 'exact')
+  [33] = (('ig_intr_md_for_tm.ucast_egress_port', 0), 'exact')
+  [34] = (('ig_intr_md_for_tm.ucast_egress_port', 1), 'exact')
+  [35] = (('ig_intr_md_for_tm.ucast_egress_port', 2), 'exact')
+  [36] = (('ig_intr_md_for_tm.ucast_egress_port', 3), 'exact')
+  [37] = (('ig_intr_md_for_tm.ucast_egress_port', 4), 'exact')
+  [38] = (('ig_intr_md_for_tm.ucast_egress_port', 5), 'exact')
+  [39] = (('ig_intr_md_for_tm.ucast_egress_port', 6), 'exact')
+  [40] = (('ig_intr_md_for_tm.ucast_egress_port', 7), 'exact')
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 0) --> 40
+   (0, 0) --> 41
+   (0, 1) --> 42
+   (0, 2) --> 43
+   (0, 3) --> 44
+   (0, 4) --> 45
+   (0, 5) --> 46
+   (0, 6) --> 47
+   (0, 7) --> 48
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
+Allocating: Gateway 15 in stage 3 for _condition_2.
+
+========================================================
+  Run Gateway Placement on Request List of size 1
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_2 needs access to 9 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (130, 0)
+Byte Position 1
+  (130, 1)
+Byte Position 2
+  (130, 0)
+Byte Position 3
+  (130, 1)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 8).
+Allocating: Hash Bit 41 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 0).
+Allocating: Hash Bit 42 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 1).
+Allocating: Hash Bit 43 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 2).
+Allocating: Hash Bit 44 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 3).
+Allocating: Hash Bit 45 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 4).
+Allocating: Hash Bit 46 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 5).
+Allocating: Hash Bit 47 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 6).
+Allocating: Hash Bit 48 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 7).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.ucast_egress_port', 8), 'exact')
+  [33] = (('ig_intr_md_for_tm.ucast_egress_port', 0), 'exact')
+  [34] = (('ig_intr_md_for_tm.ucast_egress_port', 1), 'exact')
+  [35] = (('ig_intr_md_for_tm.ucast_egress_port', 2), 'exact')
+  [36] = (('ig_intr_md_for_tm.ucast_egress_port', 3), 'exact')
+  [37] = (('ig_intr_md_for_tm.ucast_egress_port', 4), 'exact')
+  [38] = (('ig_intr_md_for_tm.ucast_egress_port', 5), 'exact')
+  [39] = (('ig_intr_md_for_tm.ucast_egress_port', 6), 'exact')
+  [40] = (('ig_intr_md_for_tm.ucast_egress_port', 7), 'exact')
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 0) --> 40
+   (0, 0) --> 41
+   (0, 1) --> 42
+   (0, 2) --> 43
+   (0, 3) --> 44
+   (0, 4) --> 45
+   (0, 5) --> 46
+   (0, 6) --> 47
+   (0, 7) --> 48
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
+Allocating: Gateway 15 in stage 3 for _condition_2.
+valid:
+const:
+xor:
+Gateway Resource Request for P4 table egress_port_count_table_always_true_condition with handle -1 in stage 3
+  Validity checks:
+      <none>
+  Fields to check against constants:
+      <none>
+  Field pairs to compare to each other:
+      <none>
+
+Gateway Resource Request for table egress_port_count_table_always_true_condition needs access to 0 input bits
+
+
+========================================================
+  Run Gateway Placement on Request List of size 2
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_2 needs access to 9 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (130, 0)
+Byte Position 1
+  (130, 1)
+Byte Position 2
+  (130, 0)
+Byte Position 3
+  (130, 1)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 8).
+Allocating: Hash Bit 41 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 0).
+Allocating: Hash Bit 42 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 1).
+Allocating: Hash Bit 43 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 2).
+Allocating: Hash Bit 44 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 3).
+Allocating: Hash Bit 45 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 4).
+Allocating: Hash Bit 46 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 5).
+Allocating: Hash Bit 47 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 6).
+Allocating: Hash Bit 48 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 7).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.ucast_egress_port', 8), 'exact')
+  [33] = (('ig_intr_md_for_tm.ucast_egress_port', 0), 'exact')
+  [34] = (('ig_intr_md_for_tm.ucast_egress_port', 1), 'exact')
+  [35] = (('ig_intr_md_for_tm.ucast_egress_port', 2), 'exact')
+  [36] = (('ig_intr_md_for_tm.ucast_egress_port', 3), 'exact')
+  [37] = (('ig_intr_md_for_tm.ucast_egress_port', 4), 'exact')
+  [38] = (('ig_intr_md_for_tm.ucast_egress_port', 5), 'exact')
+  [39] = (('ig_intr_md_for_tm.ucast_egress_port', 6), 'exact')
+  [40] = (('ig_intr_md_for_tm.ucast_egress_port', 7), 'exact')
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 0) --> 40
+   (0, 0) --> 41
+   (0, 1) --> 42
+   (0, 2) --> 43
+   (0, 3) --> 44
+   (0, 4) --> 45
+   (0, 5) --> 46
+   (0, 6) --> 47
+   (0, 7) --> 48
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
+Allocating: Gateway 15 in stage 3 for _condition_2.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f4523770f50>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table egress_port_count_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
+----------------------------
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+
+Allocating: Gateway 14 in stage 3 for egress_port_count_table_always_true_condition.
+
+========================================================
+  Run Gateway Placement on Request List of size 2
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_2 needs access to 9 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (130, 0)
+Byte Position 1
+  (130, 1)
+Byte Position 2
+  (130, 0)
+Byte Position 3
+  (130, 1)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 8).
+Allocating: Hash Bit 41 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 0).
+Allocating: Hash Bit 42 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 1).
+Allocating: Hash Bit 43 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 2).
+Allocating: Hash Bit 44 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 3).
+Allocating: Hash Bit 45 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 4).
+Allocating: Hash Bit 46 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 5).
+Allocating: Hash Bit 47 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 6).
+Allocating: Hash Bit 48 in hash match group 0 for ('ig_intr_md_for_tm.ucast_egress_port', 7).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.ucast_egress_port', 8), 'exact')
+  [33] = (('ig_intr_md_for_tm.ucast_egress_port', 0), 'exact')
+  [34] = (('ig_intr_md_for_tm.ucast_egress_port', 1), 'exact')
+  [35] = (('ig_intr_md_for_tm.ucast_egress_port', 2), 'exact')
+  [36] = (('ig_intr_md_for_tm.ucast_egress_port', 3), 'exact')
+  [37] = (('ig_intr_md_for_tm.ucast_egress_port', 4), 'exact')
+  [38] = (('ig_intr_md_for_tm.ucast_egress_port', 5), 'exact')
+  [39] = (('ig_intr_md_for_tm.ucast_egress_port', 6), 'exact')
+  [40] = (('ig_intr_md_for_tm.ucast_egress_port', 7), 'exact')
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 0) --> 40
+   (0, 0) --> 41
+   (0, 1) --> 42
+   (0, 2) --> 43
+   (0, 3) --> 44
+   (0, 4) --> 45
+   (0, 5) --> 46
+   (0, 6) --> 47
+   (0, 7) --> 48
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 3 for gateway
+Allocating: Gateway 15 in stage 3 for _condition_2.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f451ff9a750>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table egress_port_count_table_always_true_condition needs access to 0 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
+----------------------------
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+
+Allocating: Gateway 14 in stage 3 for egress_port_count_table_always_true_condition.
+valid:
+const:
+  f = ig_intr_md_for_tm.copy_to_cpu
+xor:
+Gateway Resource Request for P4 table _condition_3 with handle 117440516 in stage 0
+  Validity checks:
+      <none>
+  Fields to check against constants:
+      Field ig_intr_md_for_tm.copy_to_cpu [0:0]
+  Field pairs to compare to each other:
+      <none>
+
+Gateway Resource Request for table _condition_3 needs access to 1 input bits
+
+
+========================================================
+  Run Gateway Placement on Request List of size 2
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_3 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (80, 0)
+Byte Position 1
+  (80, 0)
+Byte Position 2
+  (80, 0)
+Byte Position 3
+  (80, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.copy_to_cpu', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.copy_to_cpu', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (0, 0) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_3.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f4524221d10>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Removing available byte Byte 8 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 10 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 12 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 14 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 41 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 1) --> 41
+
+Allocating: Gateway 14 in stage 0 for _condition_0.
+
+========================================================
+  Run Gateway Placement on Request List of size 2
+========================================================
+
+Available Gateways are: (16)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+Gateway 15
+------- Phase 0 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+Search bus 1 on row 7
+Looking at gateway table 13
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 12
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 6
+Search bus 1 on row 6
+Looking at gateway table 11
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 10
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 5
+Search bus 1 on row 5
+Looking at gateway table 9
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 8
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 4
+Search bus 1 on row 4
+Looking at gateway table 7
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 6
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 3
+Search bus 1 on row 3
+Looking at gateway table 5
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 4
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 2
+Search bus 1 on row 2
+Looking at gateway table 3
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 2
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 1
+Search bus 1 on row 1
+Looking at gateway table 1
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+Looking at gateway table 0
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 0
+Search bus 1 on row 0
+------- Phase 1 -------------
+Looking at gateway table 15
+match_groups_attached_to_gateway = OrderedDict([(0, (None, [], None, [], [])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+
+ final_parity_group_ids = [(0, []), (1, [])] 
+
+ open_parity_group_ids = [0, 1] 
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_3 needs access to 1 input bits in exact match group 0 (parity groups [0, 1]) and hash group 0 for gateway 15.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (80, 0)
+Byte Position 1
+  (80, 0)
+Byte Position 2
+  (80, 0)
+Byte Position 3
+  (80, 0)
+
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 40 in hash match group 0 for ('ig_intr_md_for_tm.copy_to_cpu', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = (('ig_intr_md_for_tm.copy_to_cpu', 0), 'exact')
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (0, 0) --> 40
+
+Allocating: Ram Data Bus MatchSearch1 7 left_and_right is 128 bits in stage 0 for gateway
+Allocating: Gateway 15 in stage 0 for _condition_3.
+Available Gateways are: (15)
+Gateway 0
+Gateway 1
+Gateway 2
+Gateway 3
+Gateway 4
+Gateway 5
+Gateway 6
+Gateway 7
+Gateway 8
+Gateway 9
+Gateway 10
+Gateway 11
+Gateway 12
+Gateway 13
+Gateway 14
+------- Phase 0 -------------
+Looking at gateway table 14
+match_groups_attached_to_gateway = OrderedDict([(0, (0, [0], 0, [0], [(<p4c_tofino.target.tofino.device.pipeline.mau.match_keys.packed_gateway_key.PackedGatewayKey object at 0x7f451fb32a10>, 0)])), (1, (None, [], None, [], []))])
+Search bus 0 on row 7
+----------------------------
+ Trying to place Gateway Resource Request for table _condition_0 needs access to 1 input bits in exact match group 0 (parity groups [0]) and hash group 0 for gateway 14.
+----------------------------
+--------------
+Call to _place_fields_for_constant_comparison
+constant_match_key_partition is:
+Byte Position 0
+  (68, 0)
+Byte Position 1
+  (68, 0)
+Byte Position 2
+  (68, 0)
+Byte Position 3
+  (68, 0)
+
+Removing available byte Byte 8 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 10 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 12 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Removing available byte Byte 14 is of type exact and member of group 0 (parity group 1) with 16 bytes. because not in available parity group(s) [0]
+Available bytes in ram word is [0, 1, 2, 3, 4, 5, 6, 7]
+Available data bytes for constants are [0, 1, 2, 3]
+Put all gateway constant field bits into the hash bits.
+Allocating: Hash Bit 41 in hash match group 0 for ('--validity_check--packet_out_hdr', 0).
+Gateway data search bus packing is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = None
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+  [44] = None
+  [45] = None
+  [46] = None
+  [47] = None
+  [48] = None
+  [49] = None
+  [50] = None
+  [51] = None
+  [52] = None
+  [53] = None
+  [54] = None
+  [55] = None
+  [56] = None
+  [57] = None
+  [58] = None
+  [59] = None
+  [60] = None
+  [61] = None
+  [62] = None
+  [63] = None
+ Move Byte Mapping:
+
+Final Gateway Key is:
+  [0] = None
+  [1] = None
+  [2] = None
+  [3] = None
+  [4] = None
+  [5] = None
+  [6] = None
+  [7] = None
+  [8] = None
+  [9] = None
+  [10] = None
+  [11] = None
+  [12] = None
+  [13] = None
+  [14] = None
+  [15] = None
+  [16] = None
+  [17] = None
+  [18] = None
+  [19] = None
+  [20] = None
+  [21] = None
+  [22] = None
+  [23] = None
+  [24] = None
+  [25] = None
+  [26] = None
+  [27] = None
+  [28] = None
+  [29] = None
+  [30] = None
+  [31] = None
+  [32] = None
+  [33] = (('--validity_check--packet_out_hdr', 0), 'exact')
+  [34] = None
+  [35] = None
+  [36] = None
+  [37] = None
+  [38] = None
+  [39] = None
+  [40] = None
+  [41] = None
+  [42] = None
+  [43] = None
+ Hash Bit Mapping:
+   (1, 1) --> 41
+
+Allocating: Gateway 14 in stage 0 for _condition_0.