Bump P4 tools to latest version

With support for P4Runtime multicast API

Change-Id: I6982c32187204b656a927d0f3d7f3a4b1b877e75
diff --git a/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.p4info b/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.p4info
index f1d7cd2..4dc3701 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.p4info
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.p4info
@@ -239,28 +239,6 @@
   }
   direct_table_id: 33594717
 }
-meters {
-  preamble {
-    id: 335581151
-    name: "ingress.port_meters_ingress.ingress_port_meter"
-    alias: "ingress_port_meter"
-  }
-  spec {
-    unit: BYTES
-  }
-  size: 511
-}
-meters {
-  preamble {
-    id: 335569641
-    name: "egress.port_meters_egress.egress_port_meter"
-    alias: "egress_port_meter"
-  }
-  spec {
-    unit: BYTES
-  }
-  size: 511
-}
 direct_meters {
   preamble {
     id: 352337889
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index 10deed0..baf8f63 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -863,7 +863,7 @@
       "name" : "deparser",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/parser.p4",
+        "filename" : "include/parser.p4",
         "line" : 165,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
@@ -943,7 +943,7 @@
       "name" : "FabricIngress.port_counters_control.egress_port_counter",
       "id" : 11,
       "source_info" : {
-        "filename" : "./include/control/port_counter.p4",
+        "filename" : "include/control/port_counter.p4",
         "line" : 23,
         "column" : 48,
         "source_fragment" : "egress_port_counter"
@@ -955,7 +955,7 @@
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
       "id" : 12,
       "source_info" : {
-        "filename" : "./include/control/port_counter.p4",
+        "filename" : "include/control/port_counter.p4",
         "line" : 24,
         "column" : 48,
         "source_fragment" : "ingress_port_counter"
@@ -976,7 +976,7 @@
       "name" : "calc",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/checksum.p4",
+        "filename" : "include/checksum.p4",
         "line" : 28,
         "column" : 8,
         "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
@@ -1033,7 +1033,7 @@
       "name" : "calc_0",
       "id" : 1,
       "source_info" : {
-        "filename" : "./include/control/../spgw.p4",
+        "filename" : "include/spgw.p4",
         "line" : 296,
         "column" : 8,
         "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
@@ -1090,7 +1090,7 @@
       "name" : "calc_1",
       "id" : 2,
       "source_info" : {
-        "filename" : "./include/checksum.p4",
+        "filename" : "include/checksum.p4",
         "line" : 56,
         "column" : 8,
         "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
@@ -1233,7 +1233,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1243,7 +1243,7 @@
           "op" : "exit",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 34,
             "column" : 8,
             "source_fragment" : "exit"
@@ -1265,7 +1265,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setInvalid()"
@@ -1280,7 +1280,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setInvalid()"
@@ -1295,7 +1295,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "gtpu.setInvalid()"
@@ -1334,7 +1334,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "spgw_meta.teid = teid"
@@ -1353,7 +1353,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
@@ -1372,7 +1372,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
@@ -1395,7 +1395,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1426,7 +1426,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1453,7 +1453,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
@@ -1472,7 +1472,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = 0"
@@ -1491,7 +1491,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = 0"
@@ -1510,7 +1510,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
@@ -1529,7 +1529,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 66,
             "column" : 31,
             "source_fragment" : "0x8100; ..."
@@ -1548,7 +1548,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 54,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1577,7 +1577,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 57,
             "column" : 8,
             "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
@@ -1608,7 +1608,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 94,
             "column" : 8,
             "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
@@ -1639,7 +1639,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1666,7 +1666,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 60,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
@@ -1685,7 +1685,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 61,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1716,7 +1716,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 83,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1747,7 +1747,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 105,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1773,7 +1773,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 110,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = 255"
@@ -1790,7 +1790,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 115,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1821,7 +1821,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 61,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1852,7 +1852,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num"
@@ -1887,7 +1887,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 90,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1906,7 +1906,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -1945,7 +1945,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -1964,7 +1964,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -1983,7 +1983,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2026,7 +2026,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2045,7 +2045,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2064,7 +2064,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2079,7 +2079,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2098,7 +2098,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2117,7 +2117,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2136,7 +2136,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2155,7 +2155,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2174,7 +2174,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2217,7 +2217,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2236,7 +2236,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2255,7 +2255,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2270,7 +2270,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2289,7 +2289,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2308,7 +2308,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2327,7 +2327,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2346,7 +2346,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2365,7 +2365,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2408,7 +2408,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2427,7 +2427,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2446,7 +2446,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 90,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
@@ -2465,7 +2465,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2504,7 +2504,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2523,7 +2523,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2542,7 +2542,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2585,7 +2585,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2604,7 +2604,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2623,7 +2623,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2638,7 +2638,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2657,7 +2657,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2676,7 +2676,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2695,7 +2695,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2714,7 +2714,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2733,7 +2733,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2776,7 +2776,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2795,7 +2795,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2814,7 +2814,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2829,7 +2829,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2848,7 +2848,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2867,7 +2867,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2886,7 +2886,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2905,7 +2905,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2924,7 +2924,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2955,7 +2955,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 202,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = gid"
@@ -2981,7 +2981,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 26,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
@@ -2996,7 +2996,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.setInvalid()"
@@ -3082,7 +3082,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 152,
             "column" : 12,
             "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
@@ -3101,7 +3101,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 153,
             "column" : 12,
             "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
@@ -3120,7 +3120,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 154,
             "column" : 17,
             "source_fragment" : "= gtpu_ipv4; ..."
@@ -3139,7 +3139,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 155,
             "column" : 16,
             "source_fragment" : "= gtpu_udp; ..."
@@ -3175,7 +3175,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 159,
             "column" : 16,
             "source_fragment" : "spgw_meta.do_spgw = true"
@@ -3194,7 +3194,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 98,
             "column" : 31,
             "source_fragment" : "1w0; ..."
@@ -3290,7 +3290,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 163,
             "column" : 12,
             "source_fragment" : "spgw_meta.do_spgw = true"
@@ -3309,7 +3309,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 99,
             "column" : 33,
             "source_fragment" : "1w1; ..."
@@ -3368,7 +3368,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 146,
             "column" : 8,
             "source_fragment" : "spgw_meta.do_spgw = false"
@@ -3404,7 +3404,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 169,
             "column" : 12,
             "source_fragment" : "return"
@@ -3490,7 +3490,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 199,
             "column" : 8,
             "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
@@ -3516,7 +3516,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 69,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -3535,7 +3535,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 69,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -3644,7 +3644,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 221,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
@@ -3683,7 +3683,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 28,
             "column" : 38,
             "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
@@ -3702,7 +3702,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 28,
             "column" : 12,
             "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
@@ -3741,7 +3741,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 31,
             "column" : 39,
             "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
@@ -3760,7 +3760,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 31,
             "column" : 12,
             "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
@@ -3788,7 +3788,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 214,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setValid()"
@@ -3807,7 +3807,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 215,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.version = 4"
@@ -3826,7 +3826,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 78,
             "column" : 28,
             "source_fragment" : "5; ..."
@@ -3845,7 +3845,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 217,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.diffserv = 0"
@@ -3887,7 +3887,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 218,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
@@ -3906,7 +3906,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 220,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.identification = 0x1513"
@@ -3925,7 +3925,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 221,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.flags = 0"
@@ -3944,7 +3944,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 222,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.frag_offset = 0"
@@ -3963,7 +3963,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 88,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -3982,7 +3982,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 75,
             "column" : 25,
             "source_fragment" : "17; ..."
@@ -4001,7 +4001,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 225,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
@@ -4020,7 +4020,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 226,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
@@ -4039,7 +4039,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 227,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
@@ -4054,7 +4054,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 229,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setValid()"
@@ -4073,7 +4073,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 230,
             "column" : 8,
             "source_fragment" : "gtpu_udp.src_port = 2152"
@@ -4092,7 +4092,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 231,
             "column" : 8,
             "source_fragment" : "gtpu_udp.dst_port = 2152"
@@ -4134,7 +4134,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 232,
             "column" : 8,
             "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
@@ -4153,7 +4153,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 234,
             "column" : 8,
             "source_fragment" : "gtpu_udp.checksum = 0"
@@ -4168,7 +4168,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 236,
             "column" : 8,
             "source_fragment" : "gtpu.setValid()"
@@ -4187,7 +4187,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 237,
             "column" : 8,
             "source_fragment" : "gtpu.version = 0x01"
@@ -4206,7 +4206,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 238,
             "column" : 8,
             "source_fragment" : "gtpu.pt = 0x01"
@@ -4225,7 +4225,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 239,
             "column" : 8,
             "source_fragment" : "gtpu.spare = 0"
@@ -4244,7 +4244,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 240,
             "column" : 8,
             "source_fragment" : "gtpu.ex_flag = 0"
@@ -4263,7 +4263,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 241,
             "column" : 8,
             "source_fragment" : "gtpu.seq_flag = 0"
@@ -4282,7 +4282,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 242,
             "column" : 8,
             "source_fragment" : "gtpu.npdu_flag = 0"
@@ -4301,7 +4301,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 243,
             "column" : 8,
             "source_fragment" : "gtpu.msgtype = 0xff"
@@ -4320,7 +4320,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 244,
             "column" : 8,
             "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
@@ -4339,7 +4339,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 245,
             "column" : 8,
             "source_fragment" : "gtpu.teid = spgw_meta.teid"
@@ -4365,7 +4365,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
@@ -4380,7 +4380,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
@@ -4406,7 +4406,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 247,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
@@ -4421,7 +4421,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 248,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
@@ -4443,7 +4443,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 46,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.setValid()"
@@ -4462,7 +4462,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 47,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
@@ -4608,7 +4608,7 @@
           "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
           "id" : 3,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "s1u_filter_table"
@@ -4714,7 +4714,7 @@
           "name" : "FabricIngress.spgw_ingress.ue_filter_table",
           "id" : 7,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 55,
             "column" : 10,
             "source_fragment" : "ue_filter_table"
@@ -4866,7 +4866,7 @@
           "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
           "id" : 13,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 124,
             "column" : 10,
             "source_fragment" : "dl_sess_lookup"
@@ -4972,7 +4972,7 @@
           "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
           "id" : 17,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 134,
             "column" : 10,
             "source_fragment" : "ue_cdr_table"
@@ -5032,7 +5032,7 @@
           "name" : "FabricIngress.filtering.ingress_port_vlan",
           "id" : 19,
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 61,
             "column" : 10,
             "source_fragment" : "ingress_port_vlan"
@@ -5083,7 +5083,7 @@
           "name" : "FabricIngress.filtering.fwd_classifier",
           "id" : 20,
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 98,
             "column" : 10,
             "source_fragment" : "fwd_classifier"
@@ -5131,7 +5131,7 @@
           "name" : "FabricIngress.forwarding.bridging",
           "id" : 21,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 41,
             "column" : 10,
             "source_fragment" : "bridging"
@@ -5174,7 +5174,7 @@
           "name" : "FabricIngress.forwarding.mpls",
           "id" : 22,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "mpls"
@@ -5234,7 +5234,7 @@
           "name" : "FabricIngress.forwarding.unicast_v4",
           "id" : 24,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 87,
             "column" : 10,
             "source_fragment" : "unicast_v4"
@@ -5271,7 +5271,7 @@
           "name" : "FabricIngress.forwarding.acl",
           "id" : 25,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 119,
             "column" : 10,
             "source_fragment" : "acl"
@@ -5376,7 +5376,7 @@
           "name" : "FabricIngress.next.vlan_meta",
           "id" : 26,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "vlan_meta"
@@ -5413,7 +5413,7 @@
           "name" : "FabricIngress.next.simple",
           "id" : 27,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 122,
             "column" : 10,
             "source_fragment" : "simple"
@@ -5519,7 +5519,7 @@
           "name" : "FabricIngress.next.hashed",
           "id" : 31,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 175,
             "column" : 10,
             "source_fragment" : "hashed"
@@ -5553,7 +5553,7 @@
           "name" : "FabricIngress.next.multicast",
           "id" : 32,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 206,
             "column" : 10,
             "source_fragment" : "multicast"
@@ -5670,7 +5670,7 @@
           "name" : "node_2",
           "id" : 0,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 25,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.isValid()"
@@ -5693,7 +5693,7 @@
           "name" : "node_5",
           "id" : 1,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 147,
             "column" : 12,
             "source_fragment" : "gtpu.isValid()"
@@ -5750,7 +5750,7 @@
           "name" : "node_17",
           "id" : 4,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 167,
             "column" : 12,
             "source_fragment" : "spgw_meta.do_spgw == false"
@@ -5807,7 +5807,7 @@
           "name" : "node_20",
           "id" : 6,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 172,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
@@ -5833,7 +5833,7 @@
           "name" : "node_22",
           "id" : 7,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 189,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
@@ -5859,7 +5859,7 @@
           "name" : "node_26",
           "id" : 8,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 190,
             "column" : 16,
             "source_fragment" : "!dl_sess_lookup.apply().hit"
@@ -5889,7 +5889,7 @@
           "name" : "node_32",
           "id" : 9,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 222,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
@@ -5915,7 +5915,7 @@
           "name" : "node_34",
           "id" : 10,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 223,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
@@ -5941,7 +5941,7 @@
           "name" : "node_37",
           "id" : 11,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 238,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
@@ -5984,7 +5984,7 @@
           "name" : "node_45",
           "id" : 13,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 219,
             "column" : 16,
             "source_fragment" : "!hdr.mpls.isValid()"
@@ -6014,7 +6014,7 @@
           "name" : "node_46",
           "id" : 14,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 220,
             "column" : 19,
             "source_fragment" : "hdr.ipv4.isValid()"
@@ -6037,7 +6037,7 @@
           "name" : "node_50",
           "id" : 15,
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec < 511"
@@ -6063,7 +6063,7 @@
           "name" : "node_52",
           "id" : 16,
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 30,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port < 511"
@@ -6102,7 +6102,7 @@
           "name" : "FabricEgress.egress_next.egress_vlan",
           "id" : 35,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 252,
             "column" : 10,
             "source_fragment" : "egress_vlan"
@@ -6240,7 +6240,7 @@
           "name" : "node_57",
           "id" : 17,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 42,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_port == 255"
@@ -6266,7 +6266,7 @@
           "name" : "node_58",
           "id" : 18,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 43,
             "column" : 16,
             "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
@@ -6316,7 +6316,7 @@
           "name" : "node_62",
           "id" : 19,
           "source_info" : {
-            "filename" : "./include/control/../spgw.p4",
+            "filename" : "include/spgw.p4",
             "line" : 249,
             "column" : 12,
             "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index 2a692f7..f250cea 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -93,22 +93,8 @@
       ]
     },
     {
-      "name" : "ipv6_t",
-      "id" : 6,
-      "fields" : [
-        ["version", 4, false],
-        ["traffic_class", 8, false],
-        ["flow_label", 20, false],
-        ["payload_len", 16, false],
-        ["next_hdr", 8, false],
-        ["hop_limit", 8, false],
-        ["src_addr", 128, false],
-        ["dst_addr", 128, false]
-      ]
-    },
-    {
       "name" : "arp_t",
-      "id" : 7,
+      "id" : 6,
       "fields" : [
         ["hw_type", 16, false],
         ["proto_type", 16, false],
@@ -119,7 +105,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 8,
+      "id" : 7,
       "fields" : [
         ["src_port", 16, false],
         ["dst_port", 16, false],
@@ -136,7 +122,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 9,
+      "id" : 8,
       "fields" : [
         ["src_port", 16, false],
         ["dst_port", 16, false],
@@ -146,7 +132,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 10,
+      "id" : 9,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -158,7 +144,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 11,
+      "id" : 10,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -166,7 +152,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 12,
+      "id" : 11,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -217,50 +203,43 @@
       "pi_omit" : true
     },
     {
-      "name" : "ipv6",
-      "id" : 6,
-      "header_type" : "ipv6_t",
-      "metadata" : false,
-      "pi_omit" : true
-    },
-    {
       "name" : "arp",
-      "id" : 7,
+      "id" : 6,
       "header_type" : "arp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 8,
+      "id" : 7,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 9,
+      "id" : 8,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 10,
+      "id" : 9,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 11,
+      "id" : 10,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 12,
+      "id" : 11,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
@@ -379,12 +358,6 @@
               "next_state" : "parse_ipv4"
             },
             {
-              "type" : "hexstr",
-              "value" : "0x86dd",
-              "mask" : null,
-              "next_state" : "parse_ipv6"
-            },
-            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -439,12 +412,6 @@
             },
             {
               "type" : "hexstr",
-              "value" : "0x86dd",
-              "mask" : null,
-              "next_state" : "parse_ipv6"
-            },
-            {
-              "type" : "hexstr",
               "value" : "0x8847",
               "mask" : null,
               "next_state" : "parse_mpls"
@@ -497,12 +464,6 @@
               "next_state" : "parse_ipv4"
             },
             {
-              "type" : "hexstr",
-              "value" : "0x06",
-              "mask" : null,
-              "next_state" : "parse_ipv6"
-            },
-            {
               "value" : "default",
               "mask" : null,
               "next_state" : "parse_ethernet"
@@ -575,67 +536,8 @@
           ]
         },
         {
-          "name" : "parse_ipv6",
-          "id" : 6,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "regular",
-                  "value" : "ipv6"
-                }
-              ],
-              "op" : "extract"
-            },
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t.ip_proto"]
-                },
-                {
-                  "type" : "field",
-                  "value" : ["ipv6", "next_hdr"]
-                }
-              ],
-              "op" : "set"
-            }
-          ],
-          "transitions" : [
-            {
-              "type" : "hexstr",
-              "value" : "0x06",
-              "mask" : null,
-              "next_state" : "parse_tcp"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x11",
-              "mask" : null,
-              "next_state" : "parse_udp"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x3a",
-              "mask" : null,
-              "next_state" : "parse_icmp"
-            },
-            {
-              "value" : "default",
-              "mask" : null,
-              "next_state" : null
-            }
-          ],
-          "transition_key" : [
-            {
-              "type" : "field",
-              "value" : ["ipv6", "next_hdr"]
-            }
-          ]
-        },
-        {
           "name" : "parse_arp",
-          "id" : 7,
+          "id" : 6,
           "parser_ops" : [
             {
               "parameters" : [
@@ -658,7 +560,7 @@
         },
         {
           "name" : "parse_tcp",
-          "id" : 8,
+          "id" : 7,
           "parser_ops" : [
             {
               "parameters" : [
@@ -707,7 +609,7 @@
         },
         {
           "name" : "parse_udp",
-          "id" : 9,
+          "id" : 8,
           "parser_ops" : [
             {
               "parameters" : [
@@ -756,7 +658,7 @@
         },
         {
           "name" : "parse_icmp",
-          "id" : 10,
+          "id" : 9,
           "parser_ops" : [
             {
               "parameters" : [
@@ -786,12 +688,12 @@
       "name" : "deparser",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/parser.p4",
+        "filename" : "include/parser.p4",
         "line" : 165,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
-      "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "ipv6", "tcp", "udp", "icmp"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
     }
   ],
   "meter_arrays" : [],
@@ -833,52 +735,34 @@
       "binding" : "FabricIngress.forwarding.acl"
     },
     {
-      "name" : "FabricIngress.forwarding.multicast_v4_counter",
-      "id" : 6,
-      "is_direct" : true,
-      "binding" : "FabricIngress.forwarding.multicast_v4"
-    },
-    {
-      "name" : "FabricIngress.forwarding.unicast_v6_counter",
-      "id" : 7,
-      "is_direct" : true,
-      "binding" : "FabricIngress.forwarding.unicast_v6"
-    },
-    {
-      "name" : "FabricIngress.forwarding.multicast_v6_counter",
-      "id" : 8,
-      "is_direct" : true,
-      "binding" : "FabricIngress.forwarding.multicast_v6"
-    },
-    {
       "name" : "FabricIngress.next.vlan_meta_counter",
-      "id" : 9,
+      "id" : 6,
       "is_direct" : true,
       "binding" : "FabricIngress.next.vlan_meta"
     },
     {
       "name" : "FabricIngress.next.simple_counter",
-      "id" : 10,
+      "id" : 7,
       "is_direct" : true,
       "binding" : "FabricIngress.next.simple"
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 11,
+      "id" : 8,
       "is_direct" : true,
       "binding" : "FabricIngress.next.hashed"
     },
     {
       "name" : "FabricIngress.next.multicast_counter",
-      "id" : 12,
+      "id" : 9,
       "is_direct" : true,
       "binding" : "FabricIngress.next.multicast"
     },
     {
       "name" : "FabricIngress.port_counters_control.egress_port_counter",
-      "id" : 13,
+      "id" : 10,
       "source_info" : {
-        "filename" : "./include/control/port_counter.p4",
+        "filename" : "include/control/port_counter.p4",
         "line" : 23,
         "column" : 48,
         "source_fragment" : "egress_port_counter"
@@ -888,9 +772,9 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 14,
+      "id" : 11,
       "source_info" : {
-        "filename" : "./include/control/port_counter.p4",
+        "filename" : "include/control/port_counter.p4",
         "line" : 24,
         "column" : 48,
         "source_fragment" : "ingress_port_counter"
@@ -900,7 +784,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 15,
+      "id" : 12,
       "is_direct" : true,
       "binding" : "FabricEgress.egress_next.egress_vlan"
     }
@@ -911,7 +795,7 @@
       "name" : "calc",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/checksum.p4",
+        "filename" : "include/checksum.p4",
         "line" : 28,
         "column" : 8,
         "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
@@ -968,7 +852,7 @@
       "name" : "calc_0",
       "id" : 1,
       "source_info" : {
-        "filename" : "./include/checksum.p4",
+        "filename" : "include/checksum.p4",
         "line" : 56,
         "column" : 8,
         "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
@@ -1079,33 +963,15 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
-      "id" : 9,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 10,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 11,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.filtering.drop",
-      "id" : 12,
+      "id" : 9,
       "runtime_data" : [],
       "primitives" : [
         {
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1115,7 +981,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_vlan",
-      "id" : 13,
+      "id" : 10,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1136,7 +1002,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1146,7 +1012,7 @@
     },
     {
       "name" : "FabricIngress.filtering.push_internal_vlan",
-      "id" : 14,
+      "id" : 11,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1163,7 +1029,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
@@ -1182,7 +1048,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = 0"
@@ -1201,7 +1067,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = 0"
@@ -1220,7 +1086,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
@@ -1239,7 +1105,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 66,
             "column" : 31,
             "source_fragment" : "0x8100; ..."
@@ -1258,7 +1124,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 54,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1287,7 +1153,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 57,
             "column" : 8,
             "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
@@ -1297,7 +1163,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 15,
+      "id" : 12,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -1318,7 +1184,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 94,
             "column" : 8,
             "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
@@ -1328,6 +1194,114 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
+      "id" : 13,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t.next_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/forwarding.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "fabric_metadata.next_id = next_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.pop_mpls_and_next",
+      "id" : 14,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "mpls"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/forwarding.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t.next_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/forwarding.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "fabric_metadata.next_id = next_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
+      "id" : 15,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t.next_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/forwarding.p4",
+            "line" : 83,
+            "column" : 8,
+            "source_fragment" : "fabric_metadata.next_id = next_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_next_id_acl",
       "id" : 16,
       "runtime_data" : [
         {
@@ -1349,115 +1323,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 37,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 17,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "mpls"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 60,
-            "column" : 8,
-            "source_fragment" : "hdr.mpls.setInvalid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
-      "id" : 18,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 83,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.forwarding.set_next_id_acl",
-      "id" : 19,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 105,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1467,7 +1333,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.send_to_controller",
-      "id" : 20,
+      "id" : 17,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1483,7 +1349,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 110,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = 255"
@@ -1493,14 +1359,14 @@
     },
     {
       "name" : "FabricIngress.forwarding.drop",
-      "id" : 21,
+      "id" : 18,
       "runtime_data" : [],
       "primitives" : [
         {
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 115,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1509,101 +1375,8 @@
       ]
     },
     {
-      "name" : "FabricIngress.forwarding.set_next_id_multicast_v4",
-      "id" : 22,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 155,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.forwarding.set_next_id_unicast_v6",
-      "id" : 23,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 180,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.forwarding.set_next_id_multicast_v6",
-      "id" : 24,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.next_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 203,
-            "column" : 8,
-            "source_fragment" : "fabric_metadata.next_id = next_id"
-          }
-        }
-      ]
-    },
-    {
       "name" : "FabricIngress.next.set_vlan",
-      "id" : 25,
+      "id" : 19,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1624,7 +1397,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 61,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1634,7 +1407,7 @@
     },
     {
       "name" : "FabricIngress.next.output_simple",
-      "id" : 26,
+      "id" : 20,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -1655,7 +1428,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num"
@@ -1665,7 +1438,7 @@
     },
     {
       "name" : "FabricIngress.next.set_vlan_output",
-      "id" : 27,
+      "id" : 21,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1690,7 +1463,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 90,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1709,7 +1482,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -1719,7 +1492,7 @@
     },
     {
       "name" : "FabricIngress.next.l3_routing_simple",
-      "id" : 28,
+      "id" : 22,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -1748,7 +1521,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -1767,7 +1540,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -1786,7 +1559,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -1796,7 +1569,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_v4_simple",
-      "id" : 29,
+      "id" : 23,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -1829,7 +1602,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -1848,7 +1621,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -1867,7 +1640,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -1882,7 +1655,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -1901,7 +1674,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -1920,7 +1693,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -1939,7 +1712,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -1958,7 +1731,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -1977,7 +1750,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -1987,7 +1760,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_v6_simple",
-      "id" : 30,
+      "id" : 24,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2020,7 +1793,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2039,7 +1812,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2058,7 +1831,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2073,7 +1846,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2092,7 +1865,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2111,7 +1884,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2130,7 +1903,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2149,7 +1922,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2168,7 +1941,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2178,7 +1951,7 @@
     },
     {
       "name" : "FabricIngress.next.l3_routing_vlan",
-      "id" : 31,
+      "id" : 25,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2211,7 +1984,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2230,7 +2003,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2249,7 +2022,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 90,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
@@ -2268,7 +2041,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 85,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2278,7 +2051,7 @@
     },
     {
       "name" : "FabricIngress.next.l3_routing_hashed",
-      "id" : 32,
+      "id" : 26,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2307,7 +2080,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2326,7 +2099,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2345,7 +2118,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2355,7 +2128,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_v4_hashed",
-      "id" : 33,
+      "id" : 27,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2388,7 +2161,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2407,7 +2180,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2426,7 +2199,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2441,7 +2214,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2460,7 +2233,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2479,7 +2252,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2498,7 +2271,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2517,7 +2290,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2536,7 +2309,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2546,7 +2319,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_v6_hashed",
-      "id" : 34,
+      "id" : 28,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2579,7 +2352,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2598,7 +2371,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2617,7 +2390,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 149,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2632,7 +2405,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2651,7 +2424,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 67,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2670,7 +2443,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2689,7 +2462,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2708,7 +2481,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2727,7 +2500,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 87,
             "column" : 32,
             "source_fragment" : "64; ..."
@@ -2737,7 +2510,7 @@
     },
     {
       "name" : "FabricIngress.next.set_mcast_group",
-      "id" : 35,
+      "id" : 29,
       "runtime_data" : [
         {
           "name" : "gid",
@@ -2758,7 +2531,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 202,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = gid"
@@ -2768,7 +2541,7 @@
     },
     {
       "name" : "act",
-      "id" : 36,
+      "id" : 30,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2784,7 +2557,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 26,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
@@ -2799,7 +2572,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.setInvalid()"
@@ -2809,7 +2582,7 @@
     },
     {
       "name" : "act_0",
-      "id" : 37,
+      "id" : 31,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2825,7 +2598,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 69,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -2844,7 +2617,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/../define.p4",
+            "filename" : "include/control/../define.p4",
             "line" : 69,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -2854,7 +2627,7 @@
     },
     {
       "name" : "act_1",
-      "id" : 38,
+      "id" : 32,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2884,7 +2657,7 @@
     },
     {
       "name" : "act_2",
-      "id" : 39,
+      "id" : 33,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2914,7 +2687,7 @@
     },
     {
       "name" : "act_3",
-      "id" : 40,
+      "id" : 34,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2953,7 +2726,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 221,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
@@ -2963,56 +2736,7 @@
     },
     {
       "name" : "act_4",
-      "id" : 41,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ipv6", "hop_limit"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["ipv6", "hop_limit"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0xff"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/control/next.p4",
-            "line" : 225,
-            "column" : 20,
-            "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_5",
-      "id" : 42,
+      "id" : 35,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3041,7 +2765,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 28,
             "column" : 38,
             "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
@@ -3060,7 +2784,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 28,
             "column" : 12,
             "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
@@ -3069,8 +2793,8 @@
       ]
     },
     {
-      "name" : "act_6",
-      "id" : 43,
+      "name" : "act_5",
+      "id" : 36,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3099,7 +2823,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 31,
             "column" : 39,
             "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
@@ -3118,7 +2842,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 31,
             "column" : 12,
             "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
@@ -3128,13 +2852,13 @@
     },
     {
       "name" : "nop",
-      "id" : 44,
+      "id" : 37,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.pkt_io_egress.pop_vlan",
-      "id" : 45,
+      "id" : 38,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3150,7 +2874,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
@@ -3165,7 +2889,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
@@ -3175,7 +2899,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 46,
+      "id" : 39,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3191,7 +2915,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 247,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
@@ -3206,7 +2930,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 248,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
@@ -3215,8 +2939,8 @@
       ]
     },
     {
-      "name" : "act_7",
-      "id" : 47,
+      "name" : "act_6",
+      "id" : 40,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3228,7 +2952,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 46,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.setValid()"
@@ -3247,7 +2971,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 47,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
@@ -3278,14 +3002,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [36],
+          "action_ids" : [30],
           "actions" : ["act"],
           "base_default_next" : null,
           "next_tables" : {
             "act" : null
           },
           "default_entry" : {
-            "action_id" : 36,
+            "action_id" : 30,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3295,7 +3019,7 @@
           "name" : "FabricIngress.filtering.ingress_port_vlan",
           "id" : 1,
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 61,
             "column" : 10,
             "source_fragment" : "ingress_port_vlan"
@@ -3326,7 +3050,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [14, 13, 0, 12],
+          "action_ids" : [11, 10, 0, 9],
           "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -3346,7 +3070,7 @@
           "name" : "FabricIngress.filtering.fwd_classifier",
           "id" : 2,
           "source_info" : {
-            "filename" : "./include/control/filtering.p4",
+            "filename" : "include/control/filtering.p4",
             "line" : 98,
             "column" : 10,
             "source_fragment" : "fwd_classifier"
@@ -3377,14 +3101,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [15],
+          "action_ids" : [12],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
           "base_default_next" : "node_6",
           "next_tables" : {
             "FabricIngress.filtering.set_forwarding_type" : "node_6"
           },
           "default_entry" : {
-            "action_id" : 15,
+            "action_id" : 12,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -3394,7 +3118,7 @@
           "name" : "FabricIngress.forwarding.bridging",
           "id" : 3,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 41,
             "column" : 10,
             "source_fragment" : "bridging"
@@ -3419,7 +3143,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16, 3],
+          "action_ids" : [13, 3],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -3437,7 +3161,7 @@
           "name" : "FabricIngress.forwarding.mpls",
           "id" : 4,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "mpls"
@@ -3456,7 +3180,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17, 4],
+          "action_ids" : [14, 4],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
           "base_default_next" : "tbl_act_0",
           "next_tables" : {
@@ -3480,14 +3204,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [37],
+          "action_ids" : [31],
           "actions" : ["act_0"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
             "act_0" : "FabricIngress.forwarding.acl"
           },
           "default_entry" : {
-            "action_id" : 37,
+            "action_id" : 31,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3497,7 +3221,7 @@
           "name" : "FabricIngress.forwarding.unicast_v4",
           "id" : 6,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 87,
             "column" : 10,
             "source_fragment" : "unicast_v4"
@@ -3516,7 +3240,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 5],
+          "action_ids" : [15, 5],
           "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -3531,133 +3255,10 @@
           }
         },
         {
-          "name" : "FabricIngress.forwarding.multicast_v4",
+          "name" : "FabricIngress.forwarding.acl",
           "id" : 7,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 159,
-            "column" : 10,
-            "source_fragment" : "multicast_v4"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "hdr.vlan_tag.vlan_id",
-              "target" : ["vlan_tag", "vlan_id"],
-              "mask" : null
-            },
-            {
-              "match_type" : "lpm",
-              "name" : "hdr.ipv4.dst_addr",
-              "target" : ["ipv4", "dst_addr"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "lpm",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : true,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [22, 6],
-          "actions" : ["FabricIngress.forwarding.set_next_id_multicast_v4", "NoAction"],
-          "base_default_next" : "FabricIngress.forwarding.acl",
-          "next_tables" : {
-            "FabricIngress.forwarding.set_next_id_multicast_v4" : "FabricIngress.forwarding.acl",
-            "NoAction" : "FabricIngress.forwarding.acl"
-          },
-          "default_entry" : {
-            "action_id" : 6,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
-          "name" : "FabricIngress.forwarding.unicast_v6",
-          "id" : 8,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 184,
-            "column" : 10,
-            "source_fragment" : "unicast_v6"
-          },
-          "key" : [
-            {
-              "match_type" : "lpm",
-              "name" : "hdr.ipv6.dst_addr",
-              "target" : ["ipv6", "dst_addr"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "lpm",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : true,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [23, 7],
-          "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v6", "NoAction"],
-          "base_default_next" : "FabricIngress.forwarding.acl",
-          "next_tables" : {
-            "FabricIngress.forwarding.set_next_id_unicast_v6" : "FabricIngress.forwarding.acl",
-            "NoAction" : "FabricIngress.forwarding.acl"
-          },
-          "default_entry" : {
-            "action_id" : 7,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
-          "name" : "FabricIngress.forwarding.multicast_v6",
-          "id" : 9,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 207,
-            "column" : 10,
-            "source_fragment" : "multicast_v6"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "hdr.vlan_tag.vlan_id",
-              "target" : ["vlan_tag", "vlan_id"],
-              "mask" : null
-            },
-            {
-              "match_type" : "lpm",
-              "name" : "hdr.ipv6.dst_addr",
-              "target" : ["ipv6", "dst_addr"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "lpm",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : true,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [24, 8],
-          "actions" : ["FabricIngress.forwarding.set_next_id_multicast_v6", "NoAction"],
-          "base_default_next" : "FabricIngress.forwarding.acl",
-          "next_tables" : {
-            "FabricIngress.forwarding.set_next_id_multicast_v6" : "FabricIngress.forwarding.acl",
-            "NoAction" : "FabricIngress.forwarding.acl"
-          },
-          "default_entry" : {
-            "action_id" : 8,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
-          "name" : "FabricIngress.forwarding.acl",
-          "id" : 10,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 119,
             "column" : 10,
             "source_fragment" : "acl"
@@ -3742,7 +3343,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [19, 20, 21, 1],
+          "action_ids" : [16, 17, 18, 1],
           "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.send_to_controller", "FabricIngress.forwarding.drop", "nop"],
           "base_default_next" : "FabricIngress.next.vlan_meta",
           "next_tables" : {
@@ -3760,9 +3361,9 @@
         },
         {
           "name" : "FabricIngress.next.vlan_meta",
-          "id" : 11,
+          "id" : 8,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "vlan_meta"
@@ -3781,7 +3382,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [25, 2],
+          "action_ids" : [19, 2],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -3797,9 +3398,9 @@
         },
         {
           "name" : "FabricIngress.next.simple",
-          "id" : 12,
+          "id" : 9,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 122,
             "column" : 10,
             "source_fragment" : "simple"
@@ -3818,7 +3419,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [26, 27, 28, 29, 30, 31, 9],
+          "action_ids" : [20, 21, 22, 23, 24, 25, 6],
           "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -3826,7 +3427,7 @@
             "__MISS__" : "tbl_act_2"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 6,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3834,7 +3435,7 @@
         },
         {
           "name" : "tbl_act_1",
-          "id" : 13,
+          "id" : 10,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -3842,14 +3443,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [38],
+          "action_ids" : [32],
           "actions" : ["act_1"],
-          "base_default_next" : "node_24",
+          "base_default_next" : "node_18",
           "next_tables" : {
-            "act_1" : "node_24"
+            "act_1" : "node_18"
           },
           "default_entry" : {
-            "action_id" : 38,
+            "action_id" : 32,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3857,7 +3458,7 @@
         },
         {
           "name" : "tbl_act_2",
-          "id" : 14,
+          "id" : 11,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -3865,14 +3466,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39],
+          "action_ids" : [33],
           "actions" : ["act_2"],
-          "base_default_next" : "node_24",
+          "base_default_next" : "node_18",
           "next_tables" : {
-            "act_2" : "node_24"
+            "act_2" : "node_18"
           },
           "default_entry" : {
-            "action_id" : 39,
+            "action_id" : 33,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3880,7 +3481,7 @@
         },
         {
           "name" : "tbl_act_3",
-          "id" : 15,
+          "id" : 12,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -3888,37 +3489,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [40],
+          "action_ids" : [34],
           "actions" : ["act_3"],
           "base_default_next" : "FabricIngress.next.hashed",
           "next_tables" : {
             "act_3" : "FabricIngress.next.hashed"
           },
           "default_entry" : {
-            "action_id" : 40,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_4",
-          "id" : 16,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [41],
-          "actions" : ["act_4"],
-          "base_default_next" : "FabricIngress.next.hashed",
-          "next_tables" : {
-            "act_4" : "FabricIngress.next.hashed"
-          },
-          "default_entry" : {
-            "action_id" : 41,
+            "action_id" : 34,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3926,9 +3504,9 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 17,
+          "id" : 13,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 175,
             "column" : 10,
             "source_fragment" : "hashed"
@@ -3948,7 +3526,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [32, 33, 34, 10],
+          "action_ids" : [26, 27, 28, 7],
           "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
           "base_default_next" : "FabricIngress.next.multicast",
           "next_tables" : {
@@ -3960,9 +3538,9 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 18,
+          "id" : 14,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 206,
             "column" : 10,
             "source_fragment" : "multicast"
@@ -3981,23 +3559,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35, 11],
+          "action_ids" : [29, 8],
           "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
-          "base_default_next" : "node_32",
+          "base_default_next" : "node_24",
           "next_tables" : {
-            "FabricIngress.next.set_mcast_group" : "node_32",
-            "NoAction" : "node_32"
+            "FabricIngress.next.set_mcast_group" : "node_24",
+            "NoAction" : "node_24"
           },
           "default_entry" : {
-            "action_id" : 11,
+            "action_id" : 8,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
           }
         },
         {
-          "name" : "tbl_act_5",
-          "id" : 19,
+          "name" : "tbl_act_4",
+          "id" : 15,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4005,22 +3583,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [42],
-          "actions" : ["act_5"],
-          "base_default_next" : "node_34",
+          "action_ids" : [35],
+          "actions" : ["act_4"],
+          "base_default_next" : "node_26",
           "next_tables" : {
-            "act_5" : "node_34"
+            "act_4" : "node_26"
           },
           "default_entry" : {
-            "action_id" : 42,
+            "action_id" : 35,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_6",
-          "id" : 20,
+          "name" : "tbl_act_5",
+          "id" : 16,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4028,14 +3606,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [43],
-          "actions" : ["act_6"],
+          "action_ids" : [36],
+          "actions" : ["act_5"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_6" : null
+            "act_5" : null
           },
           "default_entry" : {
-            "action_id" : 43,
+            "action_id" : 36,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4079,7 +3657,7 @@
           "name" : "node_2",
           "id" : 0,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 25,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.isValid()"
@@ -4102,7 +3680,7 @@
           "name" : "node_6",
           "id" : 1,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 222,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
@@ -4128,7 +3706,7 @@
           "name" : "node_8",
           "id" : 2,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
+            "filename" : "include/control/forwarding.p4",
             "line" : 223,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
@@ -4154,8 +3732,8 @@
           "name" : "node_11",
           "id" : 3,
           "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 230,
+            "filename" : "include/control/forwarding.p4",
+            "line" : 238,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -4174,89 +3752,11 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.unicast_v4",
-          "false_next" : "node_13"
-        },
-        {
-          "name" : "node_13",
-          "id" : 4,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 232,
-            "column" : 17,
-            "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t.fwd_type"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x03"
-              }
-            }
-          },
-          "true_next" : "FabricIngress.forwarding.multicast_v4",
-          "false_next" : "node_15"
-        },
-        {
-          "name" : "node_15",
-          "id" : 5,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 235,
-            "column" : 17,
-            "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t.fwd_type"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x04"
-              }
-            }
-          },
-          "true_next" : "FabricIngress.forwarding.unicast_v6",
-          "false_next" : "node_17"
-        },
-        {
-          "name" : "node_17",
-          "id" : 6,
-          "source_info" : {
-            "filename" : "./include/control/forwarding.p4",
-            "line" : 237,
-            "column" : 17,
-            "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t.fwd_type"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x05"
-              }
-            }
-          },
-          "true_next" : "FabricIngress.forwarding.multicast_v6",
           "false_next" : "FabricIngress.forwarding.acl"
         },
         {
-          "name" : "node_24",
-          "id" : 7,
+          "name" : "node_18",
+          "id" : 4,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -4268,14 +3768,14 @@
               }
             }
           },
-          "true_next" : "node_25",
+          "true_next" : "node_19",
           "false_next" : "FabricIngress.next.hashed"
         },
         {
-          "name" : "node_25",
-          "id" : 8,
+          "name" : "node_19",
+          "id" : 5,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 219,
             "column" : 16,
             "source_fragment" : "!hdr.mpls.isValid()"
@@ -4298,14 +3798,14 @@
               }
             }
           },
-          "true_next" : "node_26",
+          "true_next" : "node_20",
           "false_next" : "FabricIngress.next.hashed"
         },
         {
-          "name" : "node_26",
-          "id" : 9,
+          "name" : "node_20",
+          "id" : 6,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 220,
             "column" : 19,
             "source_fragment" : "hdr.ipv4.isValid()"
@@ -4322,36 +3822,13 @@
             }
           },
           "true_next" : "tbl_act_3",
-          "false_next" : "node_28"
-        },
-        {
-          "name" : "node_28",
-          "id" : 10,
-          "source_info" : {
-            "filename" : "./include/control/next.p4",
-            "line" : 224,
-            "column" : 25,
-            "source_fragment" : "hdr.ipv6.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["ipv6", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_4",
           "false_next" : "FabricIngress.next.hashed"
         },
         {
-          "name" : "node_32",
-          "id" : 11,
+          "name" : "node_24",
+          "id" : 7,
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec < 511"
@@ -4370,14 +3847,14 @@
               }
             }
           },
-          "true_next" : "tbl_act_5",
-          "false_next" : "node_34"
+          "true_next" : "tbl_act_4",
+          "false_next" : "node_26"
         },
         {
-          "name" : "node_34",
-          "id" : 12,
+          "name" : "node_26",
+          "id" : 8,
           "source_info" : {
-            "filename" : "./include/control/port_counter.p4",
+            "filename" : "include/control/port_counter.p4",
             "line" : 30,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port < 511"
@@ -4397,7 +3874,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_6"
+          "true_next" : "tbl_act_5"
         }
       ]
     },
@@ -4414,9 +3891,9 @@
       "tables" : [
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 21,
+          "id" : 17,
           "source_info" : {
-            "filename" : "./include/control/next.p4",
+            "filename" : "include/control/next.p4",
             "line" : 252,
             "column" : 10,
             "source_fragment" : "egress_vlan"
@@ -4441,15 +3918,15 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46, 44],
+          "action_ids" : [39, 37],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : "node_39",
+          "base_default_next" : "node_31",
           "next_tables" : {
-            "FabricEgress.egress_next.pop_vlan" : "node_39",
-            "nop" : "node_39"
+            "FabricEgress.egress_next.pop_vlan" : "node_31",
+            "nop" : "node_31"
           },
           "default_entry" : {
-            "action_id" : 44,
+            "action_id" : 37,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -4457,7 +3934,7 @@
         },
         {
           "name" : "tbl_pkt_io_egress_pop_vlan",
-          "id" : 22,
+          "id" : 18,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4465,22 +3942,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45],
+          "action_ids" : [38],
           "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
-          "base_default_next" : "tbl_act_7",
+          "base_default_next" : "tbl_act_6",
           "next_tables" : {
-            "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_7"
+            "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_6"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 38,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 23,
+          "name" : "tbl_act_6",
+          "id" : 19,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4488,14 +3965,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [47],
-          "actions" : ["act_7"],
+          "action_ids" : [40],
+          "actions" : ["act_6"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_7" : null
+            "act_6" : null
           },
           "default_entry" : {
-            "action_id" : 47,
+            "action_id" : 40,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4505,10 +3982,10 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_39",
-          "id" : 13,
+          "name" : "node_31",
+          "id" : 9,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 42,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_port == 255"
@@ -4528,13 +4005,13 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_40"
+          "true_next" : "node_32"
         },
         {
-          "name" : "node_40",
-          "id" : 14,
+          "name" : "node_32",
+          "id" : 10,
           "source_info" : {
-            "filename" : "./include/control/packetio.p4",
+            "filename" : "include/control/packetio.p4",
             "line" : 43,
             "column" : 16,
             "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
@@ -4578,7 +4055,7 @@
             }
           },
           "true_next" : "tbl_pkt_io_egress_pop_vlan",
-          "false_next" : "tbl_act_7"
+          "false_next" : "tbl_act_6"
         }
       ]
     }
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
index db81d51..15f2da7 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
@@ -245,87 +245,6 @@
 }
 tables {
   preamble {
-    id: 33578363
-    name: "FabricIngress.forwarding.multicast_v4"
-    alias: "multicast_v4"
-  }
-  match_fields {
-    id: 1
-    name: "hdr.vlan_tag.vlan_id"
-    bitwidth: 12
-    match_type: EXACT
-  }
-  match_fields {
-    id: 2
-    name: "hdr.ipv4.dst_addr"
-    bitwidth: 32
-    match_type: LPM
-  }
-  action_refs {
-    id: 16809157
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318797896
-  size: 1024
-  idle_timeout_behavior: NO_TIMEOUT
-}
-tables {
-  preamble {
-    id: 33568751
-    name: "FabricIngress.forwarding.unicast_v6"
-    alias: "unicast_v6"
-  }
-  match_fields {
-    id: 1
-    name: "hdr.ipv6.dst_addr"
-    bitwidth: 128
-    match_type: LPM
-  }
-  action_refs {
-    id: 16823773
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318820865
-  size: 1024
-  idle_timeout_behavior: NO_TIMEOUT
-}
-tables {
-  preamble {
-    id: 33581295
-    name: "FabricIngress.forwarding.multicast_v6"
-    alias: "multicast_v6"
-  }
-  match_fields {
-    id: 1
-    name: "hdr.vlan_tag.vlan_id"
-    bitwidth: 12
-    match_type: EXACT
-  }
-  match_fields {
-    id: 2
-    name: "hdr.ipv6.dst_addr"
-    bitwidth: 128
-    match_type: LPM
-  }
-  action_refs {
-    id: 16819612
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318815310
-  size: 1024
-  idle_timeout_behavior: NO_TIMEOUT
-}
-tables {
-  preamble {
     id: 33562709
     name: "FabricIngress.next.vlan_meta"
     alias: "vlan_meta"
@@ -588,42 +507,6 @@
 }
 actions {
   preamble {
-    id: 16809157
-    name: "FabricIngress.forwarding.set_next_id_multicast_v4"
-    alias: "set_next_id_multicast_v4"
-  }
-  params {
-    id: 1
-    name: "next_id"
-    bitwidth: 32
-  }
-}
-actions {
-  preamble {
-    id: 16823773
-    name: "FabricIngress.forwarding.set_next_id_unicast_v6"
-    alias: "set_next_id_unicast_v6"
-  }
-  params {
-    id: 1
-    name: "next_id"
-    bitwidth: 32
-  }
-}
-actions {
-  preamble {
-    id: 16819612
-    name: "FabricIngress.forwarding.set_next_id_multicast_v6"
-    alias: "set_next_id_multicast_v6"
-  }
-  params {
-    id: 1
-    name: "next_id"
-    bitwidth: 32
-  }
-}
-actions {
-  preamble {
     id: 16790685
     name: "FabricIngress.next.set_vlan"
     alias: "next.set_vlan"
@@ -968,39 +851,6 @@
 }
 direct_counters {
   preamble {
-    id: 318797896
-    name: "FabricIngress.forwarding.multicast_v4_counter"
-    alias: "multicast_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33578363
-}
-direct_counters {
-  preamble {
-    id: 318820865
-    name: "FabricIngress.forwarding.unicast_v6_counter"
-    alias: "unicast_v6_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33568751
-}
-direct_counters {
-  preamble {
-    id: 318815310
-    name: "FabricIngress.forwarding.multicast_v6_counter"
-    alias: "multicast_v6_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33581295
-}
-direct_counters {
-  preamble {
     id: 318785328
     name: "FabricIngress.next.vlan_meta_counter"
     alias: "vlan_meta_counter"
diff --git a/protocols/bmv2/thrift-api/BUCK b/protocols/bmv2/thrift-api/BUCK
index b1d766a..f9c90ff 100644
--- a/protocols/bmv2/thrift-api/BUCK
+++ b/protocols/bmv2/thrift-api/BUCK
@@ -4,7 +4,7 @@
 ]
 
 # BMV2_COMMIT should be set to the same value as specified in install-p4-tools.sh
-BMV2_COMMIT = 'ed130d01be985d814c17de949839d484e76400b1'
+BMV2_COMMIT = 'a3f0ebe4c0f10a656f8aa1ad68cb20402a62b0ee'
 BMV2_BASEURL = 'https://cdn.rawgit.com/p4lang/behavioral-model/' + BMV2_COMMIT
 BMV2_NAMESPACE = 'org.onosproject.bmv2.thriftapi'
 
@@ -99,4 +99,4 @@
 
 project_config(
     src_target = ':onos-protocols-bmv2-thrift-api'
-)
\ No newline at end of file
+)
diff --git a/protocols/bmv2/thrift-api/pom.xml b/protocols/bmv2/thrift-api/pom.xml
index a0a3785..aaa47d5 100644
--- a/protocols/bmv2/thrift-api/pom.xml
+++ b/protocols/bmv2/thrift-api/pom.xml
@@ -33,7 +33,7 @@
 
     <properties>
         <!-- BMv2 Commit ID and Thrift version -->
-        <bmv2.commit>ed130d01be985d814c17de949839d484e76400b1</bmv2.commit>
+        <bmv2.commit>a3f0ebe4c0f10a656f8aa1ad68cb20402a62b0ee</bmv2.commit>
         <bmv2.thrift.version>0.9.3</bmv2.thrift.version>
         <bmv2.baseurl>https://cdn.rawgit.com/opennetworkinglab/onos-bmv2/${bmv2.commit}</bmv2.baseurl>
         <bmv2.thrift.javanamespace>org.onosproject.bmv2.thriftapi</bmv2.thrift.javanamespace>
@@ -241,4 +241,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/protocols/p4runtime/proto/BUCK b/protocols/p4runtime/proto/BUCK
index 2f8c07f..27a8ef6 100644
--- a/protocols/p4runtime/proto/BUCK
+++ b/protocols/p4runtime/proto/BUCK
@@ -5,7 +5,7 @@
 PROTOBUF_VER = '3.2.0'
 GRPC_VER = '1.3.1'
 
-PI_COMMIT = '59c940916b4f5b182f33b4788d8c410972eaecce'
+PI_COMMIT = '7e94b025bac6db63bc8534e5dd21a008984e38bc'
 PI_BASEURL = 'https://github.com/p4lang/PI.git'
 
 # Wondering which .proto files to build? Check p4runtime's Makefile:
diff --git a/protocols/p4runtime/proto/pom.xml b/protocols/p4runtime/proto/pom.xml
index d383d81..5ac7584 100644
--- a/protocols/p4runtime/proto/pom.xml
+++ b/protocols/p4runtime/proto/pom.xml
@@ -30,7 +30,7 @@
 
     <properties>
         <protobuf.version>3.2.0</protobuf.version>
-        <piCommit>59c940916b4f5b182f33b4788d8c410972eaecce</piCommit>
+        <piCommit>7e94b025bac6db63bc8534e5dd21a008984e38bc</piCommit>
         <piBaseUrl>https://github.com/p4lang/PI.git</piBaseUrl>
     </properties>
 
diff --git a/tools/dev/p4vm/install-p4-tools.sh b/tools/dev/p4vm/install-p4-tools.sh
index 6a8d3a3..e6c7269 100755
--- a/tools/dev/p4vm/install-p4-tools.sh
+++ b/tools/dev/p4vm/install-p4-tools.sh
@@ -17,9 +17,9 @@
 BUILD_DIR=~/p4tools
 # in case BMV2_COMMIT value is updated, the same variable in
 # protocols/bmv2/thrift-api/BUCK file should also be updated
-BMV2_COMMIT="ed130d01be985d814c17de949839d484e76400b1"
-PI_COMMIT="59c940916b4f5b182f33b4788d8c410972eaecce"
-P4C_COMMIT="618d15155dcc2d784cc14a8e83131b407cf893e2"
+BMV2_COMMIT="a3f0ebe4c0f10a656f8aa1ad68cb20402a62b0ee"
+PI_COMMIT="7e94b025bac6db63bc8534e5dd21a008984e38bc"
+P4C_COMMIT="2d089af757212a057c6690998861ef67439305f4"
 PROTOBUF_COMMIT="tags/v3.2.0"
 GRPC_COMMIT="tags/v1.3.2"
 LIBYANG_COMMIT="v0.14-r1"
@@ -163,6 +163,9 @@
     sudo make install
     sudo ldconfig
     unset CFLAGS CXXFLAGS LDFLAGS
+
+    cd python
+    sudo python setup.py install --cpp_implementation
 }
 
 function do_grpc {
@@ -180,6 +183,9 @@
     sudo make install
     sudo ldconfig
     unset LDFLAGS
+
+    sudo pip install -r requirements.txt
+    sudo pip install .
 }
 
 function do_libyang {
@@ -281,7 +287,7 @@
 
     ./autogen.sh
     if [ "${DEBUG_FLAGS}" = true ] ; then
-        ./configure --with-pi --enable-debugger "CXXFLAGS=-O0 -g"
+        ./configure --with-pi --enable-debugger --disable-elogger "CXXFLAGS=-O0 -g"
     else
         ./configure --with-pi --disable-logging-macros --disable-elogger --without-nanomsg
     fi