UPDATE FROM ANTONIN: recompiled tor.p4 on Antonin's setup using the latest compiler

We should have a .deb of the compiler by tonight, 10/6/2017

Change-Id: Iab00a32ca2fe932064b72fdc270af2d0a0f540e3
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/context.json b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/context.json
index 5a73801..afaa070 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/context.json
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "10/04/17 01:43:33",
+  "build_date": "10/06/17 17:30:58",
   "compiler_version": "6.0.0-pre-alpha.4",
   "program_name": "tor",
   "learn_quanta": [],
@@ -304,12 +304,12 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 18,
+                "next_table_full": 32,
                 "action_name": "act",
                 "action_handle": 536870915,
                 "table_name": "tbl_act_1",
                 "vliw_instruction": 1,
-                "vliw_instruction_full": 65,
+                "vliw_instruction_full": 64,
                 "immediate_fields": [] } ],
             "hash_functions": [] } ] },
       "preferred_match_type": "exact",
@@ -343,9 +343,9 @@
       "stateful_table_refs": [],
       "action_data_table_refs": [] },
     {
-      "direction": "ingress",
+      "direction": "egress",
       "handle": 16777221,
-      "name": "tbl_act_1",
+      "name": "tbl_act_5",
       "table_type": "match",
       "size": 1,
       "stage_tables": [],
@@ -356,7 +356,7 @@
         "stage_tables": [
           {
             "stage_number": 1,
-            "logical_table_id": 2,
+            "logical_table_id": 1,
             "memory_resource_allocation": null,
             "size": 1,
             "stage_table_type": "match_with_no_key",
@@ -370,7 +370,73 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 19,
+                "next_table_full": 37,
+                "action_name": "act_5",
+                "action_handle": 536870929,
+                "table_name": "cond-10",
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [] } ],
+            "hash_functions": [] } ] },
+      "preferred_match_type": "exact",
+      "actions": [
+        {
+          "name": "act_5",
+          "handle": 536870929,
+          "indirect_resources": [],
+          "allowed_as_default_action": false,
+          "disallowed_as_default_action_reason": "USES_HASH_DIST",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 536870929,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "meter_table_refs": [],
+      "selection_table_refs": [],
+      "stateful_table_refs": [],
+      "action_data_table_refs": [] },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "stage_tables": [],
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false,
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "logical_table_id": 0,
+            "memory_resource_allocation": null,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "default_next_table": 255,
+            "pack_format": [
+              {
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0 } ],
+            "action_format": [
+              {
+                "next_table": 1,
+                "next_table_full": 33,
                 "action_name": "act_0",
                 "action_handle": 536870916,
                 "table_name": "vrf_vrf_classifier_table_0",
@@ -410,7 +476,7 @@
       "action_data_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777222,
+      "handle": 16777223,
       "name": "vrf.vrf_classifier_table",
       "table_type": "match",
       "size": 512,
@@ -418,10 +484,10 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
+            "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 3,
+            "logical_table_id": 1,
             "pack_format": [
               {
                 "table_word_width": 282,
@@ -758,7 +824,7 @@
               "spare_bank_memory_unit": 5 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 1,
+              "stage_number": 2,
               "stage_table_type": "ternary_indirection",
               "size": 2048,
               "pack_format": [
@@ -835,12 +901,12 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 20,
+                  "next_table_full": 34,
                   "action_name": "vrf.set_vrf",
                   "action_handle": 536870917,
                   "table_name": "class_id_class_id_assignment_table_0",
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 66,
+                  "vliw_instruction_full": 65,
                   "immediate_fields": [
                     {
                       "param_name": "vrf_id",
@@ -940,7 +1006,7 @@
       "stateful_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777223,
+      "handle": 16777224,
       "name": "class_id.class_id_assignment_table",
       "table_type": "match",
       "size": 512,
@@ -948,10 +1014,10 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
+            "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 4,
+            "logical_table_id": 2,
             "pack_format": [
               {
                 "table_word_width": 282,
@@ -1280,7 +1346,7 @@
               "spare_bank_memory_unit": 11 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 1,
+              "stage_number": 2,
               "stage_table_type": "ternary_indirection",
               "size": 8192,
               "pack_format": [
@@ -1537,12 +1603,12 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 21,
+                  "next_table_full": 35,
                   "action_name": "class_id.set_class_id",
                   "action_handle": 536870918,
                   "table_name": "l3_fwd_l3_routing_classifier_table_0",
                   "vliw_instruction": 0,
-                  "vliw_instruction_full": 67,
+                  "vliw_instruction_full": 66,
                   "immediate_fields": [
                     {
                       "param_name": "class_id_value",
@@ -1674,7 +1740,7 @@
       "stateful_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777224,
+      "handle": 16777225,
       "name": "l3_fwd.l3_routing_classifier_table",
       "table_type": "match",
       "size": 3072,
@@ -1698,8 +1764,8 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
-            "logical_table_id": 5,
+            "stage_number": 2,
+            "logical_table_id": 3,
             "memory_resource_allocation": null,
             "size": 3072,
             "stage_table_type": "hash_match",
@@ -1730,8 +1796,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 1,
                     "seed": 0,
@@ -1757,8 +1822,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 2,
                     "seed": 0,
@@ -1770,14 +1834,13 @@
                       { "field_bit": 5, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 3,
                     "seed": 0,
@@ -1800,7 +1863,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -1808,7 +1870,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 4,
                     "seed": 0,
@@ -1824,7 +1886,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
@@ -1834,7 +1895,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 5,
                     "seed": 0,
@@ -1851,7 +1912,6 @@
                       { "field_bit": 6, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -1859,7 +1919,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 6,
                     "seed": 0,
@@ -1874,11 +1934,10 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 7,
                     "seed": 0,
@@ -1895,12 +1954,11 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 8,
                     "seed": 0,
@@ -1918,14 +1976,13 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 9,
                     "seed": 0,
@@ -1938,14 +1995,13 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 10,
                     "seed": 0,
@@ -1965,8 +2021,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 11,
                     "seed": 0,
@@ -1988,8 +2043,7 @@
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 12,
                     "seed": 0,
@@ -2010,7 +2064,6 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2019,7 +2072,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 13,
                     "seed": 0,
@@ -2036,10 +2089,9 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 14,
                     "seed": 0,
@@ -2056,13 +2108,12 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 15,
                     "seed": 0,
@@ -2083,7 +2134,6 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2093,7 +2143,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 16,
                     "seed": 0,
@@ -2113,12 +2163,11 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 17,
                     "seed": 0,
@@ -2137,7 +2186,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2145,7 +2193,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 18,
                     "seed": 0,
@@ -2162,7 +2210,6 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
@@ -2173,7 +2220,7 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 19,
                     "seed": 0,
@@ -2192,14 +2239,13 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 20,
                     "seed": 0,
@@ -2218,8 +2264,7 @@
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 21,
                     "seed": 0,
@@ -2244,8 +2289,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 22,
                     "seed": 0,
@@ -2264,7 +2308,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -2273,7 +2316,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 23,
                     "seed": 0,
@@ -2291,7 +2334,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2299,7 +2341,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 24,
                     "seed": 0,
@@ -2313,7 +2355,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2323,7 +2364,7 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 25,
                     "seed": 0,
@@ -2342,12 +2383,11 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 26,
                     "seed": 0,
@@ -2366,14 +2406,13 @@
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 27,
                     "seed": 0,
@@ -2393,13 +2432,12 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 28,
                     "seed": 0,
@@ -2417,7 +2455,6 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2427,7 +2464,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 29,
                     "seed": 0,
@@ -2444,7 +2481,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2454,11 +2490,11 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] } ] } ],
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] } ] } ],
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 32,
+                "next_table_full": 36,
                 "action_name": "NoAction",
                 "action_handle": 536870919,
                 "table_name": "l3_fwd_l3_ipv4_override_table_0",
@@ -2473,7 +2509,7 @@
                 "number_memory_units_per_table_word": 1 } ],
             "ways": [
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 0,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2572,7 +2608,7 @@
                   "number_select_bits": 0,
                   "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ] } },
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 1,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2669,9 +2705,9 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 1 ] } ] } },
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 2,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2768,7 +2804,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 2 ] } ] } } ] } ],
+                  "memory_units_and_vpns": [ { "memory_units": [ 91 ], "vpns": [ 2 ] } ] } } ] } ],
         "match_type": "exact",
         "uses_dynamic_key_masks": false },
       "actions": [
@@ -2792,72 +2828,6 @@
       "stateful_table_refs": [],
       "action_data_table_refs": [] },
     {
-      "direction": "egress",
-      "handle": 16777225,
-      "name": "tbl_act_5",
-      "table_type": "match",
-      "size": 1,
-      "stage_tables": [],
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false,
-        "stage_tables": [
-          {
-            "stage_number": 1,
-            "logical_table_id": 1,
-            "memory_resource_allocation": null,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0 } ],
-            "action_format": [
-              {
-                "next_table": 1,
-                "next_table_full": 35,
-                "action_name": "act_5",
-                "action_handle": 536870929,
-                "table_name": "cond-10",
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": [] } ],
-            "hash_functions": [] } ] },
-      "preferred_match_type": "exact",
-      "actions": [
-        {
-          "name": "act_5",
-          "handle": 536870929,
-          "indirect_resources": [],
-          "allowed_as_default_action": false,
-          "disallowed_as_default_action_reason": "USES_HASH_DIST",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 536870929,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "meter_table_refs": [],
-      "selection_table_refs": [],
-      "stateful_table_refs": [],
-      "action_data_table_refs": [] },
-    {
       "direction": "ingress",
       "handle": 16777226,
       "name": "l3_fwd.l3_ipv4_override_table",
@@ -2870,7 +2840,7 @@
             "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 0,
+            "logical_table_id": 4,
             "pack_format": [
               {
                 "table_word_width": 47,
@@ -2915,8 +2885,8 @@
                         "field_width": 32 } ] } ] } ],
             "memory_resource_allocation": {
               "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 2 },
+              "memory_units_and_vpns": [ { "memory_units": [ 12 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 12 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
               "stage_number": 2,
@@ -3087,779 +3057,17 @@
                           "enable_pfe": true } ] } ] } ],
               "memory_resource_allocation": {
                 "memory_type": "sram",
-                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
-                "spare_bank_memory_unit": 2 },
-              "action_format": [
-                {
-                  "next_table": 1,
-                  "next_table_full": 48,
-                  "action_name": "NoAction",
-                  "action_handle": 536870921,
-                  "table_name": "tbl_act_2",
-                  "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
-                  "immediate_fields": [] },
-                {
-                  "next_table": 0,
-                  "next_table_full": 255,
-                  "action_name": "l3_fwd.set_nexthop",
-                  "action_handle": 536870920,
-                  "table_name": "--END_OF_PIPELINE--",
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "port",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 9 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 } ] } ] } } ],
-        "match_type": "ternary" },
-      "action_data_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 33554433,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "meter_table_refs": [],
-      "selection_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 50331649,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "default_selector_mask": 0,
-      "default_selector_value": 0,
-      "actions": [
-        {
-          "name": "NoAction",
-          "handle": 536870921,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 },
-        {
-          "name": "l3_fwd.set_nexthop",
-          "handle": 536870920,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [
-            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
-            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
-            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 0,
-      "action_profile": "l3_fwd.wcmp_action_profile",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "ipv4_base.dst_addr",
-          "position": 0,
-          "match_type": "lpm",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false } ],
-      "stateful_table_refs": [] },
-    {
-      "direction": "ingress",
-      "handle": 16777227,
-      "name": "l3_fwd.l3_ipv4_vrf_table",
-      "table_type": "match",
-      "size": 512,
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 2,
-            "size": 512,
-            "stage_table_type": "ternary_match",
-            "logical_table_id": 1,
-            "pack_format": [
-              {
-                "table_word_width": 94,
-                "memory_word_width": 47,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 2,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_1--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--tcam_parity_1--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "ipv4_base.dst_addr",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 32 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 33,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 8 },
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--version--",
-                        "lsb_mem_word_offset": 43,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "version",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 16,
-                        "field_width": 16 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 25,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 8,
-                        "field_width": 8 } ] } ] } ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 1 },
-            "default_next_table": 255,
-            "ternary_indirection_stage_table": {
-              "stage_number": 2,
-              "stage_table_type": "ternary_indirection",
-              "size": 4096,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 4,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 108,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 76,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 44,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 12,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] } ] } ],
-              "memory_resource_allocation": {
-                "memory_type": "sram",
-                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
-                "spare_bank_memory_unit": 14 },
-              "action_format": [
-                {
-                  "next_table": 1,
-                  "next_table_full": 48,
-                  "action_name": "NoAction",
-                  "action_handle": 536870921,
-                  "table_name": "tbl_act_2",
-                  "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
-                  "immediate_fields": [] },
-                {
-                  "next_table": 0,
-                  "next_table_full": 255,
-                  "action_name": "l3_fwd.set_nexthop",
-                  "action_handle": 536870920,
-                  "table_name": "--END_OF_PIPELINE--",
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "port",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 9 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 } ] } ] } } ],
-        "match_type": "ternary" },
-      "action_data_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 33554433,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "meter_table_refs": [],
-      "selection_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 50331649,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "default_selector_mask": 0,
-      "default_selector_value": 0,
-      "actions": [
-        {
-          "name": "NoAction",
-          "handle": 536870921,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 },
-        {
-          "name": "l3_fwd.set_nexthop",
-          "handle": 536870920,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [
-            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
-            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
-            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 0,
-      "action_profile": "l3_fwd.wcmp_action_profile",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "local_metadata.vrf_id",
-          "position": 0,
-          "match_type": "exact",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false },
-        {
-          "name": "ipv4_base.dst_addr",
-          "position": 1,
-          "match_type": "lpm",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false } ],
-      "stateful_table_refs": [] },
-    {
-      "direction": "ingress",
-      "handle": 16777228,
-      "name": "l3_fwd.l3_ipv4_fallback_table",
-      "table_type": "match",
-      "size": 512,
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 2,
-            "size": 512,
-            "stage_table_type": "ternary_match",
-            "logical_table_id": 2,
-            "pack_format": [
-              {
-                "table_word_width": 47,
-                "memory_word_width": 47,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 1,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--version--",
-                        "lsb_mem_word_offset": 43,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "version",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "ipv4_base.dst_addr",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 32 } ] } ] } ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 3 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 3 },
-            "default_next_table": 255,
-            "ternary_indirection_stage_table": {
-              "stage_number": 2,
-              "stage_table_type": "ternary_indirection",
-              "size": 4096,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 4,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 108,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 76,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 44,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 12,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] } ] } ],
-              "memory_resource_allocation": {
-                "memory_type": "sram",
                 "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
                 "spare_bank_memory_unit": 26 },
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 48,
+                  "next_table_full": 64,
                   "action_name": "NoAction",
                   "action_handle": 536870921,
                   "table_name": "tbl_act_2",
                   "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
+                  "vliw_instruction_full": 64,
                   "immediate_fields": [] },
                 {
                   "next_table": 0,
@@ -3868,7 +3076,7 @@
                   "action_handle": 536870920,
                   "table_name": "--END_OF_PIPELINE--",
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
+                  "vliw_instruction_full": 67,
                   "immediate_fields": [
                     {
                       "param_name": "dmac",
@@ -3987,6 +3195,116 @@
           "stage_number": 2,
           "size": 131072,
           "stage_table_type": "action_data",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--" } ] } ],
+              "action_handle": 536870921 },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 16,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 32,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 16,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 32,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 112,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--" } ] } ],
+              "action_handle": 536870920 } ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 87 } },
+        {
+          "stage_number": 3,
+          "size": 131072,
+          "stage_table_type": "action_data",
           "logical_table_id": 0,
           "pack_format": [
             {
@@ -4139,6 +3457,22 @@
           "stage_number": 2,
           "size": 1024,
           "stage_table_type": "selection",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1 } ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 94 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 95 },
+          "meter_alu_index": 3 },
+        {
+          "stage_number": 3,
+          "size": 1024,
+          "stage_table_type": "selection",
           "logical_table_id": 0,
           "pack_format": [
             {
@@ -4157,7 +3491,7 @@
       "bound_to_action_data_table_handle": 33554433 },
     {
       "direction": "egress",
-      "handle": 16777229,
+      "handle": 16777227,
       "name": "spoof_protection.dhcp_spoof_protection_table",
       "table_type": "match",
       "size": 3072,
@@ -4190,7 +3524,7 @@
         "stage_tables": [
           {
             "stage_number": 2,
-            "logical_table_id": 4,
+            "logical_table_id": 6,
             "memory_resource_allocation": null,
             "size": 3072,
             "stage_table_type": "hash_match",
@@ -5203,7 +4537,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 92 ], "vpns": [ 0 ] } ] } },
               {
                 "stage_number": 2,
                 "way_number": 1,
@@ -5269,7 +4603,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 74 ], "vpns": [ 1 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 93 ], "vpns": [ 1 ] } ] } },
               {
                 "stage_number": 2,
                 "way_number": 2,
@@ -5335,7 +4669,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 62 ], "vpns": [ 2 ] } ] } } ] } ],
+                  "memory_units_and_vpns": [ { "memory_units": [ 74 ], "vpns": [ 2 ] } ] } } ] } ],
         "match_type": "exact",
         "uses_dynamic_key_masks": false },
       "actions": [
@@ -5375,6 +4709,768 @@
       "action_data_table_refs": [] },
     {
       "direction": "ingress",
+      "handle": 16777228,
+      "name": "l3_fwd.l3_ipv4_vrf_table",
+      "table_type": "match",
+      "size": 512,
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "ipv4_base.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8 },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8 } ] } ] } ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1 },
+            "default_next_table": 255,
+            "ternary_indirection_stage_table": {
+              "stage_number": 3,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 108,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 76,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 44,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 12,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] } ] } ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14 },
+              "action_format": [
+                {
+                  "next_table": 1,
+                  "next_table_full": 64,
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_2",
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [] },
+                {
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "action_name": "l3_fwd.set_nexthop",
+                  "action_handle": 536870920,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "port",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 } ] } ] } } ],
+        "match_type": "ternary" },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554433,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "meter_table_refs": [],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 },
+        {
+          "name": "l3_fwd.set_nexthop",
+          "handle": 536870920,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
+            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 0,
+      "action_profile": "l3_fwd.wcmp_action_profile",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "local_metadata.vrf_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false },
+        {
+          "name": "ipv4_base.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false } ],
+      "stateful_table_refs": [] },
+    {
+      "direction": "ingress",
+      "handle": 16777229,
+      "name": "l3_fwd.l3_ipv4_fallback_table",
+      "table_type": "match",
+      "size": 512,
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "ipv4_base.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32 } ] } ] } ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 2 },
+            "default_next_table": 255,
+            "ternary_indirection_stage_table": {
+              "stage_number": 3,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 108,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 76,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 44,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 12,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] } ] } ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2 },
+              "action_format": [
+                {
+                  "next_table": 1,
+                  "next_table_full": 64,
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_2",
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [] },
+                {
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "action_name": "l3_fwd.set_nexthop",
+                  "action_handle": 536870920,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "port",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 } ] } ] } } ],
+        "match_type": "ternary" },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554433,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "meter_table_refs": [],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 },
+        {
+          "name": "l3_fwd.set_nexthop",
+          "handle": 536870920,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
+            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 0,
+      "action_profile": "l3_fwd.wcmp_action_profile",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ipv4_base.dst_addr",
+          "position": 0,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false } ],
+      "stateful_table_refs": [] },
+    {
+      "direction": "ingress",
       "handle": 16777230,
       "name": "tbl_act_2",
       "table_type": "match",
@@ -5386,7 +5482,7 @@
         "uses_dynamic_key_masks": false,
         "stage_tables": [
           {
-            "stage_number": 3,
+            "stage_number": 4,
             "logical_table_id": 0,
             "memory_resource_allocation": null,
             "size": 1,
@@ -5401,7 +5497,7 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 64,
+                "next_table_full": 80,
                 "action_name": "act_2",
                 "action_handle": 536870922,
                 "table_name": "punt_punt_table_0",
@@ -5458,7 +5554,7 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 4,
+            "stage_number": 5,
             "size": 512,
             "stage_table_type": "ternary_match",
             "logical_table_id": 0,
@@ -6145,7 +6241,7 @@
               "spare_bank_memory_unit": 11 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 4,
+              "stage_number": 5,
               "stage_table_type": "ternary_indirection",
               "size": 8192,
               "pack_format": [
@@ -6402,7 +6498,7 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 80,
+                  "next_table_full": 96,
                   "action_name": "NoAction",
                   "action_handle": 536870925,
                   "table_name": "tbl_act_3",
@@ -6666,7 +6762,7 @@
       "size": 1024,
       "stage_tables": [
         {
-          "stage_number": 4,
+          "stage_number": 5,
           "size": 1024,
           "stage_table_type": "meter",
           "logical_table_id": 0,
@@ -6706,7 +6802,7 @@
       "size": 4096,
       "stage_tables": [
         {
-          "stage_number": 4,
+          "stage_number": 5,
           "size": 4096,
           "stage_table_type": "statistics",
           "logical_table_id": 0,
@@ -6743,7 +6839,7 @@
         "uses_dynamic_key_masks": false,
         "stage_tables": [
           {
-            "stage_number": 5,
+            "stage_number": 6,
             "logical_table_id": 0,
             "memory_resource_allocation": null,
             "size": 1,
@@ -6828,32 +6924,36 @@
     {
       "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
       "name": "stage_1_match_input_xbar_din_power_ctl",
-      "value": "0000000f0000000c000000000000000000000079000000120000000800000000000000f80000007b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
-    {
-      "fully_qualified_name": "mau[1].dp.xbar_hash.hash.parity_group_mask",
-      "name": "stage_1_parity_group_mask",
-      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
       "name": "stage_2_match_input_xbar_din_power_ctl",
-      "value": "0000000000000019000000000000000000000020000000040000000600000000000000000000001800000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000f0000001c000000000000000000000079000000060000000600000000000000f80000007b00000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_2_parity_group_mask",
-      "value": "00000000000000000000000000000000000000300000000000000040000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "00000001000000000000000c00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
       "name": "stage_3_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000019000000000000000000000020000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
-      "fully_qualified_name": "mau[4].rams.match.adrdist.meter_sweep_ctl[3]",
-      "name": "stage_4_meter_sweep_ctl_3",
-      "value": "00040000" },
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
       "name": "stage_4_match_input_xbar_din_power_ctl",
-      "value": "000000ff0000001f00000000000000000000007f000000000000000000000000000000010000006200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+    {
+      "fully_qualified_name": "mau[5].rams.match.adrdist.meter_sweep_ctl[3]",
+      "name": "stage_5_meter_sweep_ctl_3",
+      "value": "00040000" },
     {
       "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
       "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "000000ff0000001f00000000000000000000007f000000000000000000000000000000010000006200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
       "value": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } ] }
\ No newline at end of file
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/p4_name_lookup.json b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/p4_name_lookup.json
index e421a90..2b95cd6 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/p4_name_lookup.json
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/p4_name_lookup.json
@@ -240,18 +240,6 @@
         "0": {
           "table_name": "tbl_act_0",
           "actions": { "act": { "direction": 0, "primitives": [] } } },
-        "2": {
-          "table_name": "tbl_act_1",
-          "actions": { "act_0": { "direction": 2, "primitives": [] } } },
-        "3": {
-          "table_name": "vrf.vrf_classifier_table",
-          "actions": { "vrf.set_vrf": { "direction": 3, "primitives": [] } } },
-        "4": {
-          "table_name": "class_id.class_id_assignment_table",
-          "actions": { "class_id.set_class_id": { "direction": 4, "primitives": [] } } },
-        "5": {
-          "table_name": "l3_fwd.l3_routing_classifier_table",
-          "actions": { "NoAction": { "direction": 5, "primitives": [] } } },
         "1": {
           "table_name": "tbl_act_5",
           "actions": { "act_5": { "direction": 1, "primitives": [] } } } } },
@@ -326,15 +314,25 @@
         "159": "E [ethernet.ether_type]",
         "-1": "E [tcp.window]" },
       "logical_tables": {
-        "0": { "table_name": "l3_fwd.l3_ipv4_override_table", "actions": {} },
-        "1": { "table_name": "l3_fwd.l3_ipv4_vrf_table", "actions": {} },
-        "2": { "table_name": "l3_fwd.l3_ipv4_fallback_table", "actions": {} },
-        "3": {},
-        "4": {
+        "0": {
+          "table_name": "tbl_act_1",
+          "actions": { "act_0": { "direction": 0, "primitives": [] } } },
+        "1": {
+          "table_name": "vrf.vrf_classifier_table",
+          "actions": { "vrf.set_vrf": { "direction": 1, "primitives": [] } } },
+        "2": {
+          "table_name": "class_id.class_id_assignment_table",
+          "actions": { "class_id.set_class_id": { "direction": 2, "primitives": [] } } },
+        "3": {
+          "table_name": "l3_fwd.l3_routing_classifier_table",
+          "actions": { "NoAction": { "direction": 3, "primitives": [] } } },
+        "4": { "table_name": "l3_fwd.l3_ipv4_override_table", "actions": {} },
+        "5": {},
+        "6": {
           "table_name": "spoof_protection.dhcp_spoof_protection_table",
           "actions": {
-            "NoAction": { "direction": 4, "primitives": [] },
-            "spoof_protection.drop_packet": { "direction": 4, "primitives": [] } } } } },
+            "NoAction": { "direction": 6, "primitives": [] },
+            "spoof_protection.drop_packet": { "direction": 6, "primitives": [] } } } } },
     "3": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
@@ -406,10 +404,83 @@
         "159": "E [ethernet.ether_type]",
         "-1": "E [tcp.window]" },
       "logical_tables": {
+        "0": { "table_name": "l3_fwd.l3_ipv4_vrf_table", "actions": {} },
+        "1": { "table_name": "l3_fwd.l3_ipv4_fallback_table", "actions": {} } } },
+    "4": {
+      "containers": {
+        "0": "I [ipv6_base.dst_addr.0-31]",
+        "1": "I [ipv6_base.dst_addr.32-63]",
+        "2": "I [ipv6_base.dst_addr.64-95]",
+        "3": "I [ipv6_base.dst_addr.96-127]",
+        "4": "I [ipv6_base.src_addr.0-31]",
+        "5": "I [ipv6_base.src_addr.32-63]",
+        "6": "I [ipv6_base.src_addr.64-95]",
+        "7": "I [ipv6_base.src_addr.96-127]",
+        "8": "I [local_metadata.vrf_id]",
+        "9": "I [arp.target_proto_addr]",
+        "10": "I [ipv6_base.version, ipv6_base.traffic_class, ipv6_base.flow_label]",
+        "11": "I [ipv4_base.dst_addr]",
+        "12": "I [ipv4_base.src_addr]",
+        "64": "I [ipv4_base.ttl]",
+        "65": "I [local_metadata.icmp_code]",
+        "66": "I [local_metadata.class_id]",
+        "67": "I [ipv6_base.hop_limit]",
+        "68": "I [ipv6_base.next_header]",
+        "69": "I [ipv4_base.protocol]",
+        "70": "I [ipv4_base.diffserv]",
+        "71": "I [$mirror]",
+        "72": "I [local_metadata.skip_egress]",
+        "73": "I [hasExited]",
+        "74": "I [ipv4_base.$valid]",
+        "75": "I [packet_out.$valid]",
+        "76": "I [packet_out.submit_to_ingress]",
+        "77": "I [local_metadata.color]",
+        "80": "E [packet_in.$valid]",
+        "81": "E [hasExited_0]",
+        "82": "E [udp.$valid]",
+        "83": "E [local_metadata.skip_egress]",
+        "84": "E [arp.proto_addr_len]",
+        "85": "E [arp.hw_addr_len]",
+        "86": "E [ipv6_base.hop_limit]",
+        "87": "E [ipv6_base.next_header]",
+        "88": "E [tcp.flags]",
+        "89": "E [tcp.data_offset, tcp.res]",
+        "90": "E [icmp_header.code]",
+        "91": "E [icmp_header.icmp_type]",
+        "92": "E [ipv4_base.protocol]",
+        "93": "E [ipv4_base.ttl]",
+        "94": "E [ipv4_base.diffserv]",
+        "95": "E [ipv4_base.version, ipv4_base.ihl]",
+        "128": "I [standard_metadata.egress_spec]",
+        "129": "I [packet_out.egress_physical_port]",
+        "130": "I [local_metadata.egress_spec_at_punt_match, arp.$valid]",
+        "131": "I [ethernet.src_addr.0-15]",
+        "132": "I [ethernet.src_addr.16-31]",
+        "133": "I [ethernet.src_addr.32-47]",
+        "134": "I [ethernet.dst_addr.0-15]",
+        "135": "I [ethernet.dst_addr.16-31]",
+        "136": "I [ethernet.dst_addr.32-47]",
+        "137": "I [standard_metadata.ingress_port, $always_deparse, vlan_tag$1.$valid]",
+        "138": "I [$mirror_id, ethernet.$valid, icmp_header.$valid, ipv6_base.$valid, tcp.$valid, udp.$valid, vlan_tag$0.$valid]",
+        "139": "I [local_metadata.l4_dst_port]",
+        "140": "I [local_metadata.l4_src_port]",
+        "141": "I [vlan_tag$0.pcp, vlan_tag$0.cfi, vlan_tag$0.vid]",
+        "142": "I [ethernet.ether_type]",
+        "144": "E [standard_metadata.egress_port]",
+        "145": "E [packet_in.target_egress_port, packet_in.padding2]",
+        "146": "E [local_metadata.egress_spec_at_punt_match]",
+        "147": "E [packet_in.ingress_physical_port, packet_in.padding1]",
+        "148": "E [standard_metadata.ingress_port, vlan_tag$1.$valid]",
+        "149": "E [standard_metadata.egress_spec, arp.$valid, ethernet.$valid, icmp_header.$valid, ipv4_base.$valid, ipv6_base.$valid, tcp.$valid, vlan_tag$0.$valid]",
+        "150": "E [local_metadata.l4_dst_port]",
+        "158": "E [vlan_tag$0.ether_type]",
+        "159": "E [ethernet.ether_type]",
+        "-1": "E [tcp.window]" },
+      "logical_tables": {
         "0": {
           "table_name": "tbl_act_2",
           "actions": { "act_2": { "direction": 0, "primitives": [] } } } } },
-    "4": {
+    "5": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
         "1": "I [ipv6_base.dst_addr.32-63]",
@@ -486,7 +557,7 @@
             "NoAction": { "direction": 0, "primitives": [] },
             "punt.set_queue_and_clone_to_cpu": { "direction": 0, "primitives": [] },
             "punt.set_queue_and_send_to_cpu": { "direction": 0, "primitives": [] } } } } },
-    "5": {
+    "6": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
         "1": "I [ipv6_base.dst_addr.32-63]",
@@ -560,77 +631,6 @@
         "0": {
           "table_name": "tbl_act_3",
           "actions": { "act_3": { "direction": 0, "primitives": [] } } } } },
-    "6": {
-      "containers": {
-        "0": "I [ipv6_base.dst_addr.0-31]",
-        "1": "I [ipv6_base.dst_addr.32-63]",
-        "2": "I [ipv6_base.dst_addr.64-95]",
-        "3": "I [ipv6_base.dst_addr.96-127]",
-        "4": "I [ipv6_base.src_addr.0-31]",
-        "5": "I [ipv6_base.src_addr.32-63]",
-        "6": "I [ipv6_base.src_addr.64-95]",
-        "7": "I [ipv6_base.src_addr.96-127]",
-        "8": "I [local_metadata.vrf_id]",
-        "9": "I [arp.target_proto_addr]",
-        "10": "I [ipv6_base.version, ipv6_base.traffic_class, ipv6_base.flow_label]",
-        "11": "I [ipv4_base.dst_addr]",
-        "12": "I [ipv4_base.src_addr]",
-        "64": "I [ipv4_base.ttl]",
-        "65": "I [local_metadata.icmp_code]",
-        "66": "I [local_metadata.class_id]",
-        "67": "I [ipv6_base.hop_limit]",
-        "68": "I [ipv6_base.next_header]",
-        "69": "I [ipv4_base.protocol]",
-        "70": "I [ipv4_base.diffserv]",
-        "71": "I [$mirror]",
-        "72": "I [local_metadata.skip_egress]",
-        "73": "I [hasExited]",
-        "74": "I [ipv4_base.$valid]",
-        "75": "I [packet_out.$valid]",
-        "76": "I [packet_out.submit_to_ingress]",
-        "77": "I [local_metadata.color]",
-        "80": "E [packet_in.$valid]",
-        "81": "E [hasExited_0]",
-        "82": "E [udp.$valid]",
-        "83": "E [local_metadata.skip_egress]",
-        "84": "E [arp.proto_addr_len]",
-        "85": "E [arp.hw_addr_len]",
-        "86": "E [ipv6_base.hop_limit]",
-        "87": "E [ipv6_base.next_header]",
-        "88": "E [tcp.flags]",
-        "89": "E [tcp.data_offset, tcp.res]",
-        "90": "E [icmp_header.code]",
-        "91": "E [icmp_header.icmp_type]",
-        "92": "E [ipv4_base.protocol]",
-        "93": "E [ipv4_base.ttl]",
-        "94": "E [ipv4_base.diffserv]",
-        "95": "E [ipv4_base.version, ipv4_base.ihl]",
-        "128": "I [standard_metadata.egress_spec]",
-        "129": "I [packet_out.egress_physical_port]",
-        "130": "I [local_metadata.egress_spec_at_punt_match, arp.$valid]",
-        "131": "I [ethernet.src_addr.0-15]",
-        "132": "I [ethernet.src_addr.16-31]",
-        "133": "I [ethernet.src_addr.32-47]",
-        "134": "I [ethernet.dst_addr.0-15]",
-        "135": "I [ethernet.dst_addr.16-31]",
-        "136": "I [ethernet.dst_addr.32-47]",
-        "137": "I [standard_metadata.ingress_port, $always_deparse, vlan_tag$1.$valid]",
-        "138": "I [$mirror_id, ethernet.$valid, icmp_header.$valid, ipv6_base.$valid, tcp.$valid, udp.$valid, vlan_tag$0.$valid]",
-        "139": "I [local_metadata.l4_dst_port]",
-        "140": "I [local_metadata.l4_src_port]",
-        "141": "I [vlan_tag$0.pcp, vlan_tag$0.cfi, vlan_tag$0.vid]",
-        "142": "I [ethernet.ether_type]",
-        "144": "E [standard_metadata.egress_port]",
-        "145": "E [packet_in.target_egress_port, packet_in.padding2]",
-        "146": "E [local_metadata.egress_spec_at_punt_match]",
-        "147": "E [packet_in.ingress_physical_port, packet_in.padding1]",
-        "148": "E [standard_metadata.ingress_port, vlan_tag$1.$valid]",
-        "149": "E [standard_metadata.egress_spec, arp.$valid, ethernet.$valid, icmp_header.$valid, ipv4_base.$valid, ipv6_base.$valid, tcp.$valid, vlan_tag$0.$valid]",
-        "150": "E [local_metadata.l4_dst_port]",
-        "158": "E [vlan_tag$0.ether_type]",
-        "159": "E [ethernet.ether_type]",
-        "-1": "E [tcp.window]" },
-      "logical_tables": {} },
     "7": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/tofino.bin b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/tofino.bin
index e893200..8c4c182 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/tofino.bin
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/mavericks/tofino.bin
Binary files differ
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/context.json b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/context.json
index f5442ae..95f26be 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/context.json
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "10/04/17 01:43:37",
+  "build_date": "10/06/17 17:30:16",
   "compiler_version": "6.0.0-pre-alpha.4",
   "program_name": "tor",
   "learn_quanta": [],
@@ -304,12 +304,12 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 18,
+                "next_table_full": 32,
                 "action_name": "act",
                 "action_handle": 536870915,
                 "table_name": "tbl_act_1",
                 "vliw_instruction": 1,
-                "vliw_instruction_full": 65,
+                "vliw_instruction_full": 64,
                 "immediate_fields": [] } ],
             "hash_functions": [] } ] },
       "preferred_match_type": "exact",
@@ -343,9 +343,9 @@
       "stateful_table_refs": [],
       "action_data_table_refs": [] },
     {
-      "direction": "ingress",
+      "direction": "egress",
       "handle": 16777221,
-      "name": "tbl_act_1",
+      "name": "tbl_act_5",
       "table_type": "match",
       "size": 1,
       "stage_tables": [],
@@ -356,7 +356,7 @@
         "stage_tables": [
           {
             "stage_number": 1,
-            "logical_table_id": 2,
+            "logical_table_id": 1,
             "memory_resource_allocation": null,
             "size": 1,
             "stage_table_type": "match_with_no_key",
@@ -370,7 +370,73 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 19,
+                "next_table_full": 37,
+                "action_name": "act_5",
+                "action_handle": 536870929,
+                "table_name": "cond-10",
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": [] } ],
+            "hash_functions": [] } ] },
+      "preferred_match_type": "exact",
+      "actions": [
+        {
+          "name": "act_5",
+          "handle": 536870929,
+          "indirect_resources": [],
+          "allowed_as_default_action": false,
+          "disallowed_as_default_action_reason": "USES_HASH_DIST",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 536870929,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "meter_table_refs": [],
+      "selection_table_refs": [],
+      "stateful_table_refs": [],
+      "action_data_table_refs": [] },
+    {
+      "direction": "ingress",
+      "handle": 16777222,
+      "name": "tbl_act_1",
+      "table_type": "match",
+      "size": 1,
+      "stage_tables": [],
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false,
+        "stage_tables": [
+          {
+            "stage_number": 2,
+            "logical_table_id": 0,
+            "memory_resource_allocation": null,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "default_next_table": 255,
+            "pack_format": [
+              {
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0 } ],
+            "action_format": [
+              {
+                "next_table": 1,
+                "next_table_full": 33,
                 "action_name": "act_0",
                 "action_handle": 536870916,
                 "table_name": "vrf_vrf_classifier_table_0",
@@ -410,7 +476,7 @@
       "action_data_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777222,
+      "handle": 16777223,
       "name": "vrf.vrf_classifier_table",
       "table_type": "match",
       "size": 512,
@@ -418,10 +484,10 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
+            "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 3,
+            "logical_table_id": 1,
             "pack_format": [
               {
                 "table_word_width": 282,
@@ -758,7 +824,7 @@
               "spare_bank_memory_unit": 5 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 1,
+              "stage_number": 2,
               "stage_table_type": "ternary_indirection",
               "size": 2048,
               "pack_format": [
@@ -835,12 +901,12 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 20,
+                  "next_table_full": 34,
                   "action_name": "vrf.set_vrf",
                   "action_handle": 536870917,
                   "table_name": "class_id_class_id_assignment_table_0",
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 66,
+                  "vliw_instruction_full": 65,
                   "immediate_fields": [
                     {
                       "param_name": "vrf_id",
@@ -940,7 +1006,7 @@
       "stateful_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777223,
+      "handle": 16777224,
       "name": "class_id.class_id_assignment_table",
       "table_type": "match",
       "size": 512,
@@ -948,10 +1014,10 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
+            "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 4,
+            "logical_table_id": 2,
             "pack_format": [
               {
                 "table_word_width": 282,
@@ -1280,7 +1346,7 @@
               "spare_bank_memory_unit": 11 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 1,
+              "stage_number": 2,
               "stage_table_type": "ternary_indirection",
               "size": 8192,
               "pack_format": [
@@ -1537,12 +1603,12 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 21,
+                  "next_table_full": 35,
                   "action_name": "class_id.set_class_id",
                   "action_handle": 536870918,
                   "table_name": "l3_fwd_l3_routing_classifier_table_0",
                   "vliw_instruction": 0,
-                  "vliw_instruction_full": 67,
+                  "vliw_instruction_full": 66,
                   "immediate_fields": [
                     {
                       "param_name": "class_id_value",
@@ -1674,7 +1740,7 @@
       "stateful_table_refs": [] },
     {
       "direction": "ingress",
-      "handle": 16777224,
+      "handle": 16777225,
       "name": "l3_fwd.l3_routing_classifier_table",
       "table_type": "match",
       "size": 3072,
@@ -1698,8 +1764,8 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 1,
-            "logical_table_id": 5,
+            "stage_number": 2,
+            "logical_table_id": 3,
             "memory_resource_allocation": null,
             "size": 3072,
             "stage_table_type": "hash_match",
@@ -1730,8 +1796,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 1,
                     "seed": 0,
@@ -1757,8 +1822,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 2,
                     "seed": 0,
@@ -1770,14 +1834,13 @@
                       { "field_bit": 5, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 3,
                     "seed": 0,
@@ -1800,7 +1863,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -1808,7 +1870,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 4,
                     "seed": 0,
@@ -1824,7 +1886,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
@@ -1834,7 +1895,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 5,
                     "seed": 0,
@@ -1851,7 +1912,6 @@
                       { "field_bit": 6, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -1859,7 +1919,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 6,
                     "seed": 0,
@@ -1874,11 +1934,10 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 7,
                     "seed": 0,
@@ -1895,12 +1954,11 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 8,
                     "seed": 0,
@@ -1918,14 +1976,13 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 9,
                     "seed": 0,
@@ -1938,14 +1995,13 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 10,
                     "seed": 0,
@@ -1965,8 +2021,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 11,
                     "seed": 0,
@@ -1988,8 +2043,7 @@
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 47, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 12,
                     "seed": 0,
@@ -2010,7 +2064,6 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2019,7 +2072,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 13,
                     "seed": 0,
@@ -2036,10 +2089,9 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 14,
                     "seed": 0,
@@ -2056,13 +2108,12 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 15,
                     "seed": 0,
@@ -2083,7 +2134,6 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2093,7 +2143,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 16,
                     "seed": 0,
@@ -2113,12 +2163,11 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 17,
                     "seed": 0,
@@ -2137,7 +2186,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2145,7 +2193,7 @@
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 18,
                     "seed": 0,
@@ -2162,7 +2210,6 @@
                       { "field_bit": 25, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
@@ -2173,7 +2220,7 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 19,
                     "seed": 0,
@@ -2192,14 +2239,13 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 20,
                     "seed": 0,
@@ -2218,8 +2264,7 @@
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 42, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 46, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 21,
                     "seed": 0,
@@ -2244,8 +2289,7 @@
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 45, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 22,
                     "seed": 0,
@@ -2264,7 +2308,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
@@ -2273,7 +2316,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 23,
                     "seed": 0,
@@ -2291,7 +2334,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2299,7 +2341,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 24,
                     "seed": 0,
@@ -2313,7 +2355,6 @@
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
@@ -2323,7 +2364,7 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 34, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 25,
                     "seed": 0,
@@ -2342,12 +2383,11 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 35, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 26,
                     "seed": 0,
@@ -2366,14 +2406,13 @@
                       { "field_bit": 26, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 27, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 40, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 41, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 46, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 36, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 27,
                     "seed": 0,
@@ -2393,13 +2432,12 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 23, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 37, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 28,
                     "seed": 0,
@@ -2417,7 +2455,6 @@
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 31, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 16, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 19, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 21, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2427,7 +2464,7 @@
                       { "field_bit": 43, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 32, "field_name": "ethernet.dst_addr" } ] },
+                      { "field_bit": 38, "field_name": "ethernet.dst_addr" } ] },
                   {
                     "hash_bit": 29,
                     "seed": 0,
@@ -2444,7 +2481,6 @@
                       { "field_bit": 28, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 29, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 30, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 17, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 18, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 20, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 22, "field_name": "ethernet.dst_addr" },
@@ -2454,11 +2490,11 @@
                       { "field_bit": 44, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 45, "field_name": "ethernet.dst_addr" },
                       { "field_bit": 47, "field_name": "ethernet.dst_addr" },
-                      { "field_bit": 33, "field_name": "ethernet.dst_addr" } ] } ] } ],
+                      { "field_bit": 39, "field_name": "ethernet.dst_addr" } ] } ] } ],
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 32,
+                "next_table_full": 36,
                 "action_name": "NoAction",
                 "action_handle": 536870919,
                 "table_name": "l3_fwd_l3_ipv4_override_table_0",
@@ -2473,7 +2509,7 @@
                 "number_memory_units_per_table_word": 1 } ],
             "ways": [
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 0,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2572,7 +2608,7 @@
                   "number_select_bits": 0,
                   "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ] } },
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 1,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2669,9 +2705,9 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 1 ] } ] } },
               {
-                "stage_number": 1,
+                "stage_number": 2,
                 "way_number": 2,
                 "stage_table_type": "hash_way",
                 "size": 1024,
@@ -2768,7 +2804,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 90 ], "vpns": [ 2 ] } ] } } ] } ],
+                  "memory_units_and_vpns": [ { "memory_units": [ 91 ], "vpns": [ 2 ] } ] } } ] } ],
         "match_type": "exact",
         "uses_dynamic_key_masks": false },
       "actions": [
@@ -2792,72 +2828,6 @@
       "stateful_table_refs": [],
       "action_data_table_refs": [] },
     {
-      "direction": "egress",
-      "handle": 16777225,
-      "name": "tbl_act_5",
-      "table_type": "match",
-      "size": 1,
-      "stage_tables": [],
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false,
-        "stage_tables": [
-          {
-            "stage_number": 1,
-            "logical_table_id": 1,
-            "memory_resource_allocation": null,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0 } ],
-            "action_format": [
-              {
-                "next_table": 1,
-                "next_table_full": 35,
-                "action_name": "act_5",
-                "action_handle": 536870929,
-                "table_name": "cond-10",
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": [] } ],
-            "hash_functions": [] } ] },
-      "preferred_match_type": "exact",
-      "actions": [
-        {
-          "name": "act_5",
-          "handle": 536870929,
-          "indirect_resources": [],
-          "allowed_as_default_action": false,
-          "disallowed_as_default_action_reason": "USES_HASH_DIST",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 536870929,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "meter_table_refs": [],
-      "selection_table_refs": [],
-      "stateful_table_refs": [],
-      "action_data_table_refs": [] },
-    {
       "direction": "ingress",
       "handle": 16777226,
       "name": "l3_fwd.l3_ipv4_override_table",
@@ -2870,7 +2840,7 @@
             "stage_number": 2,
             "size": 512,
             "stage_table_type": "ternary_match",
-            "logical_table_id": 0,
+            "logical_table_id": 4,
             "pack_format": [
               {
                 "table_word_width": 47,
@@ -2915,8 +2885,8 @@
                         "field_width": 32 } ] } ] } ],
             "memory_resource_allocation": {
               "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 2 },
+              "memory_units_and_vpns": [ { "memory_units": [ 12 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 12 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
               "stage_number": 2,
@@ -3087,779 +3057,17 @@
                           "enable_pfe": true } ] } ] } ],
               "memory_resource_allocation": {
                 "memory_type": "sram",
-                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
-                "spare_bank_memory_unit": 2 },
-              "action_format": [
-                {
-                  "next_table": 1,
-                  "next_table_full": 48,
-                  "action_name": "NoAction",
-                  "action_handle": 536870921,
-                  "table_name": "tbl_act_2",
-                  "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
-                  "immediate_fields": [] },
-                {
-                  "next_table": 0,
-                  "next_table_full": 255,
-                  "action_name": "l3_fwd.set_nexthop",
-                  "action_handle": 536870920,
-                  "table_name": "--END_OF_PIPELINE--",
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "port",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 9 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 } ] } ] } } ],
-        "match_type": "ternary" },
-      "action_data_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 33554433,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "meter_table_refs": [],
-      "selection_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 50331649,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "default_selector_mask": 0,
-      "default_selector_value": 0,
-      "actions": [
-        {
-          "name": "NoAction",
-          "handle": 536870921,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 },
-        {
-          "name": "l3_fwd.set_nexthop",
-          "handle": 536870920,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [
-            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
-            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
-            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 0,
-      "action_profile": "l3_fwd.wcmp_action_profile",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "ipv4_base.dst_addr",
-          "position": 0,
-          "match_type": "lpm",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false } ],
-      "stateful_table_refs": [] },
-    {
-      "direction": "ingress",
-      "handle": 16777227,
-      "name": "l3_fwd.l3_ipv4_vrf_table",
-      "table_type": "match",
-      "size": 512,
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 2,
-            "size": 512,
-            "stage_table_type": "ternary_match",
-            "logical_table_id": 1,
-            "pack_format": [
-              {
-                "table_word_width": 94,
-                "memory_word_width": 47,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 2,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_1--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--tcam_parity_1--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "ipv4_base.dst_addr",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 32 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 33,
-                        "lsb_mem_word_idx": 1,
-                        "msb_mem_word_idx": 1,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 8 },
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--version--",
-                        "lsb_mem_word_offset": 43,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "version",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 16,
-                        "field_width": 16 },
-                      {
-                        "field_name": "local_metadata.vrf_id",
-                        "lsb_mem_word_offset": 25,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 8,
-                        "field_width": 8 } ] } ] } ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 1 },
-            "default_next_table": 255,
-            "ternary_indirection_stage_table": {
-              "stage_number": 2,
-              "stage_table_type": "ternary_indirection",
-              "size": 4096,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 4,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 108,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 76,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 44,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 12,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] } ] } ],
-              "memory_resource_allocation": {
-                "memory_type": "sram",
-                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
-                "spare_bank_memory_unit": 14 },
-              "action_format": [
-                {
-                  "next_table": 1,
-                  "next_table_full": 48,
-                  "action_name": "NoAction",
-                  "action_handle": 536870921,
-                  "table_name": "tbl_act_2",
-                  "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
-                  "immediate_fields": [] },
-                {
-                  "next_table": 0,
-                  "next_table_full": 255,
-                  "action_name": "l3_fwd.set_nexthop",
-                  "action_handle": 536870920,
-                  "table_name": "--END_OF_PIPELINE--",
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "dmac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "port",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 9 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 0,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 16,
-                      "dest_start": 0,
-                      "dest_width": 16 },
-                    {
-                      "param_name": "smac",
-                      "param_type": "parameter",
-                      "param_shift": 32,
-                      "dest_start": 0,
-                      "dest_width": 16 } ] } ] } } ],
-        "match_type": "ternary" },
-      "action_data_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 33554433,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "meter_table_refs": [],
-      "selection_table_refs": [
-        {
-          "how_referenced": "indirect",
-          "handle": 50331649,
-          "name": "l3_fwd.wcmp_action_profile" } ],
-      "default_selector_mask": 0,
-      "default_selector_value": 0,
-      "actions": [
-        {
-          "name": "NoAction",
-          "handle": 536870921,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 },
-        {
-          "name": "l3_fwd.set_nexthop",
-          "handle": 536870920,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "p4_parameters": [
-            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
-            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
-            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0 } ],
-      "default_action_handle": 0,
-      "action_profile": "l3_fwd.wcmp_action_profile",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "local_metadata.vrf_id",
-          "position": 0,
-          "match_type": "exact",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false },
-        {
-          "name": "ipv4_base.dst_addr",
-          "position": 1,
-          "match_type": "lpm",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false } ],
-      "stateful_table_refs": [] },
-    {
-      "direction": "ingress",
-      "handle": 16777228,
-      "name": "l3_fwd.l3_ipv4_fallback_table",
-      "table_type": "match",
-      "size": 512,
-      "statistics_table_refs": [],
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 2,
-            "size": 512,
-            "stage_table_type": "ternary_match",
-            "logical_table_id": 2,
-            "pack_format": [
-              {
-                "table_word_width": 47,
-                "memory_word_width": 47,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 1,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1 },
-                      {
-                        "field_name": "--version--",
-                        "lsb_mem_word_offset": 43,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "version",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2 },
-                      {
-                        "field_name": "ipv4_base.dst_addr",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 32 } ] } ] } ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [ 3 ], "vpns": [ 0 ] } ],
-              "spare_bank_memory_unit": 3 },
-            "default_next_table": 255,
-            "ternary_indirection_stage_table": {
-              "stage_number": 2,
-              "stage_table_type": "ternary_indirection",
-              "size": 4096,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 4,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 108,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 76,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 44,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "field_width": 9,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_23_31--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 0,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "--instruction_address--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 5,
-                          "field_width": 11,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "adt_ptr",
-                          "lsb_mem_word_offset": 12,
-                          "field_name": "--action_data_pointer--",
-                          "enable_pfe": false },
-                        {
-                          "start_bit": 7,
-                          "field_width": 10,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "sel_ptr",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "--selection_base--",
-                          "enable_pfe": true } ] } ] } ],
-              "memory_resource_allocation": {
-                "memory_type": "sram",
                 "memory_units_and_vpns": [ { "memory_units": [ 26 ], "vpns": [ 0 ] } ],
                 "spare_bank_memory_unit": 26 },
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 48,
+                  "next_table_full": 64,
                   "action_name": "NoAction",
                   "action_handle": 536870921,
                   "table_name": "tbl_act_2",
                   "vliw_instruction": 0,
-                  "vliw_instruction_full": 65,
+                  "vliw_instruction_full": 64,
                   "immediate_fields": [] },
                 {
                   "next_table": 0,
@@ -3868,7 +3076,7 @@
                   "action_handle": 536870920,
                   "table_name": "--END_OF_PIPELINE--",
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
+                  "vliw_instruction_full": 67,
                   "immediate_fields": [
                     {
                       "param_name": "dmac",
@@ -3987,6 +3195,116 @@
           "stage_number": 2,
           "size": 131072,
           "stage_table_type": "action_data",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 128,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding--" } ] } ],
+              "action_handle": 536870921 },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 16,
+                      "field_name": "port" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 16,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 32,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "smac" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 16,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 32,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 112,
+                      "field_name": "dmac" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "--padding_0_15--" },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 25,
+                      "field_name": "--padding_25_31--" } ] } ],
+              "action_handle": 536870920 } ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 87 } },
+        {
+          "stage_number": 3,
+          "size": 131072,
+          "stage_table_type": "action_data",
           "logical_table_id": 0,
           "pack_format": [
             {
@@ -4139,6 +3457,22 @@
           "stage_number": 2,
           "size": 1024,
           "stage_table_type": "selection",
+          "logical_table_id": 4,
+          "pack_format": [
+            {
+              "table_word_width": 128,
+              "memory_word_width": 128,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 1 } ],
+          "memory_resource_allocation": {
+            "memory_type": "sram",
+            "memory_units_and_vpns": [ { "memory_units": [ 94 ], "vpns": [ 0 ] } ],
+            "spare_bank_memory_unit": 95 },
+          "meter_alu_index": 3 },
+        {
+          "stage_number": 3,
+          "size": 1024,
+          "stage_table_type": "selection",
           "logical_table_id": 0,
           "pack_format": [
             {
@@ -4157,7 +3491,7 @@
       "bound_to_action_data_table_handle": 33554433 },
     {
       "direction": "egress",
-      "handle": 16777229,
+      "handle": 16777227,
       "name": "spoof_protection.dhcp_spoof_protection_table",
       "table_type": "match",
       "size": 3072,
@@ -4190,7 +3524,7 @@
         "stage_tables": [
           {
             "stage_number": 2,
-            "logical_table_id": 4,
+            "logical_table_id": 6,
             "memory_resource_allocation": null,
             "size": 3072,
             "stage_table_type": "hash_match",
@@ -5203,7 +4537,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 92 ], "vpns": [ 0 ] } ] } },
               {
                 "stage_number": 2,
                 "way_number": 1,
@@ -5269,7 +4603,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 74 ], "vpns": [ 1 ] } ] } },
+                  "memory_units_and_vpns": [ { "memory_units": [ 93 ], "vpns": [ 1 ] } ] } },
               {
                 "stage_number": 2,
                 "way_number": 2,
@@ -5335,7 +4669,7 @@
                   "hash_select_bit_hi": 40,
                   "hash_select_bit_lo": 40,
                   "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 62 ], "vpns": [ 2 ] } ] } } ] } ],
+                  "memory_units_and_vpns": [ { "memory_units": [ 74 ], "vpns": [ 2 ] } ] } } ] } ],
         "match_type": "exact",
         "uses_dynamic_key_masks": false },
       "actions": [
@@ -5375,6 +4709,768 @@
       "action_data_table_refs": [] },
     {
       "direction": "ingress",
+      "handle": 16777228,
+      "name": "l3_fwd.l3_ipv4_vrf_table",
+      "table_type": "match",
+      "size": 512,
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 0,
+            "pack_format": [
+              {
+                "table_word_width": 94,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 2,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_1--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--tcam_parity_1--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "ipv4_base.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 1,
+                        "msb_mem_word_idx": 1,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8 },
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 16,
+                        "field_width": 16 },
+                      {
+                        "field_name": "local_metadata.vrf_id",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 8 } ] } ] } ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 0, 1 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 1 },
+            "default_next_table": 255,
+            "ternary_indirection_stage_table": {
+              "stage_number": 3,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 108,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 76,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 44,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 12,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] } ] } ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 14 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 14 },
+              "action_format": [
+                {
+                  "next_table": 1,
+                  "next_table_full": 64,
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_2",
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [] },
+                {
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "action_name": "l3_fwd.set_nexthop",
+                  "action_handle": 536870920,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "port",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 } ] } ] } } ],
+        "match_type": "ternary" },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554433,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "meter_table_refs": [],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 },
+        {
+          "name": "l3_fwd.set_nexthop",
+          "handle": 536870920,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
+            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 0,
+      "action_profile": "l3_fwd.wcmp_action_profile",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "local_metadata.vrf_id",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false },
+        {
+          "name": "ipv4_base.dst_addr",
+          "position": 1,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false } ],
+      "stateful_table_refs": [] },
+    {
+      "direction": "ingress",
+      "handle": 16777229,
+      "name": "l3_fwd.l3_ipv4_fallback_table",
+      "table_type": "match",
+      "size": 512,
+      "statistics_table_refs": [],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 1,
+            "pack_format": [
+              {
+                "table_word_width": 47,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1 },
+                      {
+                        "field_name": "--version--",
+                        "lsb_mem_word_offset": 43,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "version",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2 },
+                      {
+                        "field_name": "ipv4_base.dst_addr",
+                        "lsb_mem_word_offset": 1,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 32 } ] } ] } ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+              "spare_bank_memory_unit": 2 },
+            "default_next_table": 255,
+            "ternary_indirection_stage_table": {
+              "stage_number": 3,
+              "stage_table_type": "ternary_indirection",
+              "size": 4096,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 4,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 108,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 76,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 44,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "field_width": 9,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_23_31--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 0,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "--instruction_address--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 5,
+                          "field_width": 11,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "adt_ptr",
+                          "lsb_mem_word_offset": 12,
+                          "field_name": "--action_data_pointer--",
+                          "enable_pfe": false },
+                        {
+                          "start_bit": 7,
+                          "field_width": 10,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "sel_ptr",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "--selection_base--",
+                          "enable_pfe": true } ] } ] } ],
+              "memory_resource_allocation": {
+                "memory_type": "sram",
+                "memory_units_and_vpns": [ { "memory_units": [ 2 ], "vpns": [ 0 ] } ],
+                "spare_bank_memory_unit": 2 },
+              "action_format": [
+                {
+                  "next_table": 1,
+                  "next_table_full": 64,
+                  "action_name": "NoAction",
+                  "action_handle": 536870921,
+                  "table_name": "tbl_act_2",
+                  "vliw_instruction": 0,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [] },
+                {
+                  "next_table": 0,
+                  "next_table_full": 255,
+                  "action_name": "l3_fwd.set_nexthop",
+                  "action_handle": 536870920,
+                  "table_name": "--END_OF_PIPELINE--",
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 64,
+                  "immediate_fields": [
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "dmac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "port",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 9 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 0,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 16,
+                      "dest_start": 0,
+                      "dest_width": 16 },
+                    {
+                      "param_name": "smac",
+                      "param_type": "parameter",
+                      "param_shift": 32,
+                      "dest_start": 0,
+                      "dest_width": 16 } ] } ] } } ],
+        "match_type": "ternary" },
+      "action_data_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 33554433,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "meter_table_refs": [],
+      "selection_table_refs": [
+        {
+          "how_referenced": "indirect",
+          "handle": 50331649,
+          "name": "l3_fwd.wcmp_action_profile" } ],
+      "default_selector_mask": 0,
+      "default_selector_value": 0,
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870921,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 },
+        {
+          "name": "l3_fwd.set_nexthop",
+          "handle": 536870920,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [
+            { "name": "port", "start_bit": 0, "position": 0, "bit_width": 9 },
+            { "name": "smac", "start_bit": 0, "position": 1, "bit_width": 48 },
+            { "name": "dmac", "start_bit": 0, "position": 2, "bit_width": 48 } ],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0 } ],
+      "default_action_handle": 0,
+      "action_profile": "l3_fwd.wcmp_action_profile",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "ipv4_base.dst_addr",
+          "position": 0,
+          "match_type": "lpm",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false } ],
+      "stateful_table_refs": [] },
+    {
+      "direction": "ingress",
       "handle": 16777230,
       "name": "tbl_act_2",
       "table_type": "match",
@@ -5386,7 +5482,7 @@
         "uses_dynamic_key_masks": false,
         "stage_tables": [
           {
-            "stage_number": 3,
+            "stage_number": 4,
             "logical_table_id": 0,
             "memory_resource_allocation": null,
             "size": 1,
@@ -5401,7 +5497,7 @@
             "action_format": [
               {
                 "next_table": 1,
-                "next_table_full": 64,
+                "next_table_full": 80,
                 "action_name": "act_2",
                 "action_handle": 536870922,
                 "table_name": "punt_punt_table_0",
@@ -5458,7 +5554,7 @@
       "match_attributes": {
         "stage_tables": [
           {
-            "stage_number": 4,
+            "stage_number": 5,
             "size": 512,
             "stage_table_type": "ternary_match",
             "logical_table_id": 0,
@@ -6145,7 +6241,7 @@
               "spare_bank_memory_unit": 11 },
             "default_next_table": 255,
             "ternary_indirection_stage_table": {
-              "stage_number": 4,
+              "stage_number": 5,
               "stage_table_type": "ternary_indirection",
               "size": 8192,
               "pack_format": [
@@ -6402,7 +6498,7 @@
               "action_format": [
                 {
                   "next_table": 1,
-                  "next_table_full": 80,
+                  "next_table_full": 96,
                   "action_name": "NoAction",
                   "action_handle": 536870925,
                   "table_name": "tbl_act_3",
@@ -6666,7 +6762,7 @@
       "size": 1024,
       "stage_tables": [
         {
-          "stage_number": 4,
+          "stage_number": 5,
           "size": 1024,
           "stage_table_type": "meter",
           "logical_table_id": 0,
@@ -6706,7 +6802,7 @@
       "size": 4096,
       "stage_tables": [
         {
-          "stage_number": 4,
+          "stage_number": 5,
           "size": 4096,
           "stage_table_type": "statistics",
           "logical_table_id": 0,
@@ -6743,7 +6839,7 @@
         "uses_dynamic_key_masks": false,
         "stage_tables": [
           {
-            "stage_number": 5,
+            "stage_number": 6,
             "logical_table_id": 0,
             "memory_resource_allocation": null,
             "size": 1,
@@ -6828,32 +6924,36 @@
     {
       "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
       "name": "stage_1_match_input_xbar_din_power_ctl",
-      "value": "0000000f0000000c000000000000000000000079000000120000000800000000000000f80000007b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
-    {
-      "fully_qualified_name": "mau[1].dp.xbar_hash.hash.parity_group_mask",
-      "name": "stage_1_parity_group_mask",
-      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
       "name": "stage_2_match_input_xbar_din_power_ctl",
-      "value": "0000000000000019000000000000000000000020000000040000000600000000000000000000001800000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000f0000001c000000000000000000000079000000060000000600000000000000f80000007b00000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_2_parity_group_mask",
-      "value": "00000000000000000000000000000000000000300000000000000040000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "00000001000000000000000c00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
       "name": "stage_3_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000019000000000000000000000020000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
-      "fully_qualified_name": "mau[4].rams.match.adrdist.meter_sweep_ctl[3]",
-      "name": "stage_4_meter_sweep_ctl_3",
-      "value": "00040000" },
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
     {
       "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
       "name": "stage_4_match_input_xbar_din_power_ctl",
-      "value": "000000ff0000001f00000000000000000000007f000000000000000000000000000000010000006200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+      "value": "0000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+    {
+      "fully_qualified_name": "mau[5].rams.match.adrdist.meter_sweep_ctl[3]",
+      "name": "stage_5_meter_sweep_ctl_3",
+      "value": "00040000" },
     {
       "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
       "name": "stage_5_match_input_xbar_din_power_ctl",
+      "value": "000000ff0000001f00000000000000000000007f000000000000000000000000000000010000006200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" },
+    {
+      "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
+      "name": "stage_6_match_input_xbar_din_power_ctl",
       "value": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" } ] }
\ No newline at end of file
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/p4_name_lookup.json b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/p4_name_lookup.json
index e421a90..2b95cd6 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/p4_name_lookup.json
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/p4_name_lookup.json
@@ -240,18 +240,6 @@
         "0": {
           "table_name": "tbl_act_0",
           "actions": { "act": { "direction": 0, "primitives": [] } } },
-        "2": {
-          "table_name": "tbl_act_1",
-          "actions": { "act_0": { "direction": 2, "primitives": [] } } },
-        "3": {
-          "table_name": "vrf.vrf_classifier_table",
-          "actions": { "vrf.set_vrf": { "direction": 3, "primitives": [] } } },
-        "4": {
-          "table_name": "class_id.class_id_assignment_table",
-          "actions": { "class_id.set_class_id": { "direction": 4, "primitives": [] } } },
-        "5": {
-          "table_name": "l3_fwd.l3_routing_classifier_table",
-          "actions": { "NoAction": { "direction": 5, "primitives": [] } } },
         "1": {
           "table_name": "tbl_act_5",
           "actions": { "act_5": { "direction": 1, "primitives": [] } } } } },
@@ -326,15 +314,25 @@
         "159": "E [ethernet.ether_type]",
         "-1": "E [tcp.window]" },
       "logical_tables": {
-        "0": { "table_name": "l3_fwd.l3_ipv4_override_table", "actions": {} },
-        "1": { "table_name": "l3_fwd.l3_ipv4_vrf_table", "actions": {} },
-        "2": { "table_name": "l3_fwd.l3_ipv4_fallback_table", "actions": {} },
-        "3": {},
-        "4": {
+        "0": {
+          "table_name": "tbl_act_1",
+          "actions": { "act_0": { "direction": 0, "primitives": [] } } },
+        "1": {
+          "table_name": "vrf.vrf_classifier_table",
+          "actions": { "vrf.set_vrf": { "direction": 1, "primitives": [] } } },
+        "2": {
+          "table_name": "class_id.class_id_assignment_table",
+          "actions": { "class_id.set_class_id": { "direction": 2, "primitives": [] } } },
+        "3": {
+          "table_name": "l3_fwd.l3_routing_classifier_table",
+          "actions": { "NoAction": { "direction": 3, "primitives": [] } } },
+        "4": { "table_name": "l3_fwd.l3_ipv4_override_table", "actions": {} },
+        "5": {},
+        "6": {
           "table_name": "spoof_protection.dhcp_spoof_protection_table",
           "actions": {
-            "NoAction": { "direction": 4, "primitives": [] },
-            "spoof_protection.drop_packet": { "direction": 4, "primitives": [] } } } } },
+            "NoAction": { "direction": 6, "primitives": [] },
+            "spoof_protection.drop_packet": { "direction": 6, "primitives": [] } } } } },
     "3": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
@@ -406,10 +404,83 @@
         "159": "E [ethernet.ether_type]",
         "-1": "E [tcp.window]" },
       "logical_tables": {
+        "0": { "table_name": "l3_fwd.l3_ipv4_vrf_table", "actions": {} },
+        "1": { "table_name": "l3_fwd.l3_ipv4_fallback_table", "actions": {} } } },
+    "4": {
+      "containers": {
+        "0": "I [ipv6_base.dst_addr.0-31]",
+        "1": "I [ipv6_base.dst_addr.32-63]",
+        "2": "I [ipv6_base.dst_addr.64-95]",
+        "3": "I [ipv6_base.dst_addr.96-127]",
+        "4": "I [ipv6_base.src_addr.0-31]",
+        "5": "I [ipv6_base.src_addr.32-63]",
+        "6": "I [ipv6_base.src_addr.64-95]",
+        "7": "I [ipv6_base.src_addr.96-127]",
+        "8": "I [local_metadata.vrf_id]",
+        "9": "I [arp.target_proto_addr]",
+        "10": "I [ipv6_base.version, ipv6_base.traffic_class, ipv6_base.flow_label]",
+        "11": "I [ipv4_base.dst_addr]",
+        "12": "I [ipv4_base.src_addr]",
+        "64": "I [ipv4_base.ttl]",
+        "65": "I [local_metadata.icmp_code]",
+        "66": "I [local_metadata.class_id]",
+        "67": "I [ipv6_base.hop_limit]",
+        "68": "I [ipv6_base.next_header]",
+        "69": "I [ipv4_base.protocol]",
+        "70": "I [ipv4_base.diffserv]",
+        "71": "I [$mirror]",
+        "72": "I [local_metadata.skip_egress]",
+        "73": "I [hasExited]",
+        "74": "I [ipv4_base.$valid]",
+        "75": "I [packet_out.$valid]",
+        "76": "I [packet_out.submit_to_ingress]",
+        "77": "I [local_metadata.color]",
+        "80": "E [packet_in.$valid]",
+        "81": "E [hasExited_0]",
+        "82": "E [udp.$valid]",
+        "83": "E [local_metadata.skip_egress]",
+        "84": "E [arp.proto_addr_len]",
+        "85": "E [arp.hw_addr_len]",
+        "86": "E [ipv6_base.hop_limit]",
+        "87": "E [ipv6_base.next_header]",
+        "88": "E [tcp.flags]",
+        "89": "E [tcp.data_offset, tcp.res]",
+        "90": "E [icmp_header.code]",
+        "91": "E [icmp_header.icmp_type]",
+        "92": "E [ipv4_base.protocol]",
+        "93": "E [ipv4_base.ttl]",
+        "94": "E [ipv4_base.diffserv]",
+        "95": "E [ipv4_base.version, ipv4_base.ihl]",
+        "128": "I [standard_metadata.egress_spec]",
+        "129": "I [packet_out.egress_physical_port]",
+        "130": "I [local_metadata.egress_spec_at_punt_match, arp.$valid]",
+        "131": "I [ethernet.src_addr.0-15]",
+        "132": "I [ethernet.src_addr.16-31]",
+        "133": "I [ethernet.src_addr.32-47]",
+        "134": "I [ethernet.dst_addr.0-15]",
+        "135": "I [ethernet.dst_addr.16-31]",
+        "136": "I [ethernet.dst_addr.32-47]",
+        "137": "I [standard_metadata.ingress_port, $always_deparse, vlan_tag$1.$valid]",
+        "138": "I [$mirror_id, ethernet.$valid, icmp_header.$valid, ipv6_base.$valid, tcp.$valid, udp.$valid, vlan_tag$0.$valid]",
+        "139": "I [local_metadata.l4_dst_port]",
+        "140": "I [local_metadata.l4_src_port]",
+        "141": "I [vlan_tag$0.pcp, vlan_tag$0.cfi, vlan_tag$0.vid]",
+        "142": "I [ethernet.ether_type]",
+        "144": "E [standard_metadata.egress_port]",
+        "145": "E [packet_in.target_egress_port, packet_in.padding2]",
+        "146": "E [local_metadata.egress_spec_at_punt_match]",
+        "147": "E [packet_in.ingress_physical_port, packet_in.padding1]",
+        "148": "E [standard_metadata.ingress_port, vlan_tag$1.$valid]",
+        "149": "E [standard_metadata.egress_spec, arp.$valid, ethernet.$valid, icmp_header.$valid, ipv4_base.$valid, ipv6_base.$valid, tcp.$valid, vlan_tag$0.$valid]",
+        "150": "E [local_metadata.l4_dst_port]",
+        "158": "E [vlan_tag$0.ether_type]",
+        "159": "E [ethernet.ether_type]",
+        "-1": "E [tcp.window]" },
+      "logical_tables": {
         "0": {
           "table_name": "tbl_act_2",
           "actions": { "act_2": { "direction": 0, "primitives": [] } } } } },
-    "4": {
+    "5": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
         "1": "I [ipv6_base.dst_addr.32-63]",
@@ -486,7 +557,7 @@
             "NoAction": { "direction": 0, "primitives": [] },
             "punt.set_queue_and_clone_to_cpu": { "direction": 0, "primitives": [] },
             "punt.set_queue_and_send_to_cpu": { "direction": 0, "primitives": [] } } } } },
-    "5": {
+    "6": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
         "1": "I [ipv6_base.dst_addr.32-63]",
@@ -560,77 +631,6 @@
         "0": {
           "table_name": "tbl_act_3",
           "actions": { "act_3": { "direction": 0, "primitives": [] } } } } },
-    "6": {
-      "containers": {
-        "0": "I [ipv6_base.dst_addr.0-31]",
-        "1": "I [ipv6_base.dst_addr.32-63]",
-        "2": "I [ipv6_base.dst_addr.64-95]",
-        "3": "I [ipv6_base.dst_addr.96-127]",
-        "4": "I [ipv6_base.src_addr.0-31]",
-        "5": "I [ipv6_base.src_addr.32-63]",
-        "6": "I [ipv6_base.src_addr.64-95]",
-        "7": "I [ipv6_base.src_addr.96-127]",
-        "8": "I [local_metadata.vrf_id]",
-        "9": "I [arp.target_proto_addr]",
-        "10": "I [ipv6_base.version, ipv6_base.traffic_class, ipv6_base.flow_label]",
-        "11": "I [ipv4_base.dst_addr]",
-        "12": "I [ipv4_base.src_addr]",
-        "64": "I [ipv4_base.ttl]",
-        "65": "I [local_metadata.icmp_code]",
-        "66": "I [local_metadata.class_id]",
-        "67": "I [ipv6_base.hop_limit]",
-        "68": "I [ipv6_base.next_header]",
-        "69": "I [ipv4_base.protocol]",
-        "70": "I [ipv4_base.diffserv]",
-        "71": "I [$mirror]",
-        "72": "I [local_metadata.skip_egress]",
-        "73": "I [hasExited]",
-        "74": "I [ipv4_base.$valid]",
-        "75": "I [packet_out.$valid]",
-        "76": "I [packet_out.submit_to_ingress]",
-        "77": "I [local_metadata.color]",
-        "80": "E [packet_in.$valid]",
-        "81": "E [hasExited_0]",
-        "82": "E [udp.$valid]",
-        "83": "E [local_metadata.skip_egress]",
-        "84": "E [arp.proto_addr_len]",
-        "85": "E [arp.hw_addr_len]",
-        "86": "E [ipv6_base.hop_limit]",
-        "87": "E [ipv6_base.next_header]",
-        "88": "E [tcp.flags]",
-        "89": "E [tcp.data_offset, tcp.res]",
-        "90": "E [icmp_header.code]",
-        "91": "E [icmp_header.icmp_type]",
-        "92": "E [ipv4_base.protocol]",
-        "93": "E [ipv4_base.ttl]",
-        "94": "E [ipv4_base.diffserv]",
-        "95": "E [ipv4_base.version, ipv4_base.ihl]",
-        "128": "I [standard_metadata.egress_spec]",
-        "129": "I [packet_out.egress_physical_port]",
-        "130": "I [local_metadata.egress_spec_at_punt_match, arp.$valid]",
-        "131": "I [ethernet.src_addr.0-15]",
-        "132": "I [ethernet.src_addr.16-31]",
-        "133": "I [ethernet.src_addr.32-47]",
-        "134": "I [ethernet.dst_addr.0-15]",
-        "135": "I [ethernet.dst_addr.16-31]",
-        "136": "I [ethernet.dst_addr.32-47]",
-        "137": "I [standard_metadata.ingress_port, $always_deparse, vlan_tag$1.$valid]",
-        "138": "I [$mirror_id, ethernet.$valid, icmp_header.$valid, ipv6_base.$valid, tcp.$valid, udp.$valid, vlan_tag$0.$valid]",
-        "139": "I [local_metadata.l4_dst_port]",
-        "140": "I [local_metadata.l4_src_port]",
-        "141": "I [vlan_tag$0.pcp, vlan_tag$0.cfi, vlan_tag$0.vid]",
-        "142": "I [ethernet.ether_type]",
-        "144": "E [standard_metadata.egress_port]",
-        "145": "E [packet_in.target_egress_port, packet_in.padding2]",
-        "146": "E [local_metadata.egress_spec_at_punt_match]",
-        "147": "E [packet_in.ingress_physical_port, packet_in.padding1]",
-        "148": "E [standard_metadata.ingress_port, vlan_tag$1.$valid]",
-        "149": "E [standard_metadata.egress_spec, arp.$valid, ethernet.$valid, icmp_header.$valid, ipv4_base.$valid, ipv6_base.$valid, tcp.$valid, vlan_tag$0.$valid]",
-        "150": "E [local_metadata.l4_dst_port]",
-        "158": "E [vlan_tag$0.ether_type]",
-        "159": "E [ethernet.ether_type]",
-        "-1": "E [tcp.window]" },
-      "logical_tables": {} },
     "7": {
       "containers": {
         "0": "I [ipv6_base.dst_addr.0-31]",
diff --git a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/tofino.bin b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/tofino.bin
index 845788a..a79f573 100644
--- a/tools/test/p4src/tor/p4c-out/tofino/tor/montara/tofino.bin
+++ b/tools/test/p4src/tor/p4c-out/tofino/tor/montara/tofino.bin
Binary files differ