+---------------------------------------------------------------------+
|  Log file: mau.gateway.log                                          |
|  Compiler version: 5.1.0 (fca32d1)                                  |
|  Created on: Thu Sep  7 13:56:53 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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
========================================================

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, []), (1, [])] 

 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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 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, []), (1, [])] 

 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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 1 for gateway
Allocating: Gateway 15 in stage 1 for _condition_1.

========================================================
  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 2
  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 2 for gateway
Allocating: Gateway 15 in stage 2 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 2 for gateway
Allocating: Gateway 15 in stage 2 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 2 for gateway
Allocating: Gateway 15 in stage 2 for _condition_2.
valid:
const:
xor:
Gateway Resource Request for P4 table egress_port_count_table_always_true_condition with handle -1 in stage 2
  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 2 for gateway
Allocating: Gateway 15 in stage 2 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 0x7f1b5325e750>, 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 2 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 2 for gateway
Allocating: Gateway 15 in stage 2 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 0x7f1b4f4e7e50>, 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 2 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 0x7f1b539aed50>, 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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 0x7f1b4fa16d50>, 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
  (67, 0)
Byte Position 1
  (67, 0)
Byte Position 2
  (67, 0)
Byte Position 3
  (67, 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.
