+---------------------------------------------------------------------+
|  Log file: mau.gateway.log                                          |
|  Compiler version: 5.1.0 (fca32d1)                                  |
|  Created on: Wed Sep 13 12:56:56 2017                               |
+---------------------------------------------------------------------+


========================================================
  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_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
  (66, 0)
Byte Position 1
  (66, 0)
Byte Position 2
  (66, 0)
Byte Position 3
  (66, 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
  (66, 0)
Byte Position 1
  (66, 0)
Byte Position 2
  (66, 0)
Byte Position 3
  (66, 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.
valid:
const:
xor:
Gateway Resource Request for P4 table process_packet_out_table_always_true_condition with handle -1 in stage 0
  Validity checks:
      <none>
  Fields to check against constants:
      <none>
  Field pairs to compare to each other:
      <none>

Gateway Resource Request for table process_packet_out_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_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
  (66, 0)
Byte Position 1
  (66, 0)
Byte Position 2
  (66, 0)
Byte Position 3
  (66, 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.
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 0x7f56d9e8f390>, 0)])), (1, (None, [], None, [], []))])
Search bus 0 on row 7
----------------------------
 Trying to place Gateway Resource Request for table process_packet_out_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 0 for process_packet_out_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_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
  (66, 0)
Byte Position 1
  (66, 0)
Byte Position 2
  (66, 0)
Byte Position 3
  (66, 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.
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 0x7f56d97cb750>, 0)])), (1, (None, [], None, [], []))])
Search bus 0 on row 7
----------------------------
 Trying to place Gateway Resource Request for table process_packet_out_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 0 for process_packet_out_table_always_true_condition.

========================================================
  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 117440514 in stage 1
  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:
   (3, 0) --> 40
   (2, 0) --> 41
   (2, 1) --> 42
   (2, 2) --> 43
   (2, 3) --> 44
   (2, 4) --> 45
   (2, 5) --> 46
   (2, 6) --> 47
   (2, 7) --> 48

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_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:
   (3, 0) --> 40
   (2, 0) --> 41
   (2, 1) --> 42
   (2, 2) --> 43
   (2, 3) --> 44
   (2, 4) --> 45
   (2, 5) --> 46
   (2, 6) --> 47
   (2, 7) --> 48

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_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, [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:
   (3, 0) --> 40
   (2, 0) --> 41
   (2, 1) --> 42
   (2, 2) --> 43
   (2, 3) --> 44
   (2, 4) --> 45
   (2, 5) --> 46
   (2, 6) --> 47
   (2, 7) --> 48

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_2.
valid:
const:
xor:
Gateway Resource Request for P4 table egress_port_count_table_always_true_condition with handle -1 in stage 1
  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, [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:
   (3, 0) --> 40
   (2, 0) --> 41
   (2, 1) --> 42
   (2, 2) --> 43
   (2, 3) --> 44
   (2, 4) --> 45
   (2, 5) --> 46
   (2, 6) --> 47
   (2, 7) --> 48

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_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 0x7f56d9e83cd0>, 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 1 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, [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:
   (3, 0) --> 40
   (2, 0) --> 41
   (2, 1) --> 42
   (2, 2) --> 43
   (2, 3) --> 44
   (2, 4) --> 45
   (2, 5) --> 46
   (2, 6) --> 47
   (2, 7) --> 48

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_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 0x7f56d9e86c10>, 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 1 for egress_port_count_table_always_true_condition.
