Fix bugs from fabric.p4

 - Incorrect selector for hashed table
 - Incorrect counter type for port counter

Change-Id: I04af95bfbb17b9ca407313b3b3bfdfa9efbf1fa4
diff --git a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric-spgw.json b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric-spgw.json
index 2e38cf5..3b8aeed 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric-spgw.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric-spgw.json
@@ -313,12 +313,12 @@
   "header_union_stacks" : [],
   "field_lists" : [],
   "errors" : [
-    ["NoError", 1],
-    ["PacketTooShort", 2],
-    ["NoMatch", 3],
-    ["StackOutOfBounds", 4],
-    ["HeaderTooShort", 5],
-    ["ParserTimeout", 6]
+    ["NoError", 0],
+    ["PacketTooShort", 1],
+    ["NoMatch", 2],
+    ["StackOutOfBounds", 3],
+    ["HeaderTooShort", 4],
+    ["ParserTimeout", 5]
   ],
   "enums" : [],
   "parsers" : [
@@ -842,7 +842,7 @@
       "name" : "deparser",
       "id" : 0,
       "source_info" : {
-        "filename" : "include/parser.p4",
+        "filename" : "./include/parser.p4",
         "line" : 164,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
@@ -922,9 +922,9 @@
       "name" : "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" : 38,
+        "column" : 48,
         "source_fragment" : "egress_port_counter"
       },
       "size" : 511,
@@ -934,9 +934,9 @@
       "name" : "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" : 38,
+        "column" : 48,
         "source_fragment" : "ingress_port_counter"
       },
       "size" : 511,
@@ -949,7 +949,7 @@
       "name" : "calc",
       "id" : 0,
       "source_info" : {
-        "filename" : "include/checksum.p4",
+        "filename" : "./include/checksum.p4",
         "line" : 56,
         "column" : 8,
         "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
@@ -1006,7 +1006,7 @@
       "name" : "calc_0",
       "id" : 1,
       "source_info" : {
-        "filename" : "include/checksum.p4",
+        "filename" : "./include/checksum.p4",
         "line" : 28,
         "column" : 8,
         "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
@@ -1063,7 +1063,7 @@
       "name" : "calc_1",
       "id" : 2,
       "source_info" : {
-        "filename" : "include/spgw.p4",
+        "filename" : "./include/control/../spgw.p4",
         "line" : 292,
         "column" : 8,
         "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
@@ -1120,7 +1120,7 @@
       "name" : "calc_2",
       "id" : 3,
       "source_info" : {
-        "filename" : "include/spgw.p4",
+        "filename" : "./include/control/../spgw.p4",
         "line" : 311,
         "column" : 8,
         "source_fragment" : "update_checksum_with_payload(gtpu_udp.isValid(), ..."
@@ -1268,7 +1268,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1278,7 +1278,7 @@
           "op" : "exit",
           "parameters" : [],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 34,
             "column" : 8,
             "source_fragment" : "exit"
@@ -1300,7 +1300,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setInvalid()"
@@ -1315,7 +1315,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setInvalid()"
@@ -1330,7 +1330,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "gtpu.setInvalid()"
@@ -1369,7 +1369,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "spgw_meta.teid = teid"
@@ -1388,7 +1388,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
@@ -1407,7 +1407,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
@@ -1430,7 +1430,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 31,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1461,7 +1461,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 35,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1488,7 +1488,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
@@ -1507,7 +1507,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = 0"
@@ -1526,7 +1526,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 43,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = 0"
@@ -1545,7 +1545,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
@@ -1564,7 +1564,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 32,
             "column" : 31,
             "source_fragment" : "0x8100; ..."
@@ -1583,7 +1583,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 35,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
@@ -1612,7 +1612,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
@@ -1643,7 +1643,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 53,
             "column" : 8,
             "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
@@ -1660,7 +1660,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "mark_to_drop()"
@@ -1691,7 +1691,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1722,7 +1722,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1753,7 +1753,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1784,7 +1784,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1811,7 +1811,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
@@ -1830,7 +1830,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
@@ -1856,7 +1856,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 50,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = 255"
@@ -1887,7 +1887,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num"
@@ -1922,7 +1922,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
@@ -1951,7 +1951,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
@@ -1970,7 +1970,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2009,7 +2009,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2028,7 +2028,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2047,7 +2047,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2086,7 +2086,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2105,7 +2105,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2124,7 +2124,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2159,7 +2159,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 59,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = gid"
@@ -2178,7 +2178,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2221,7 +2221,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2240,7 +2240,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2259,7 +2259,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2274,7 +2274,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2293,7 +2293,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 33,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2312,7 +2312,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 67,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2331,7 +2331,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2350,7 +2350,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 69,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2369,8 +2369,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 60,
+            "filename" : "./include/control/../define.p4",
+            "line" : 67,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -2412,7 +2412,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2431,7 +2431,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2450,7 +2450,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2465,7 +2465,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2484,7 +2484,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 33,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2503,7 +2503,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 67,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2522,7 +2522,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2541,7 +2541,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 69,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2560,8 +2560,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 60,
+            "filename" : "./include/control/../define.p4",
+            "line" : 67,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -2603,7 +2603,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
@@ -2622,7 +2622,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
@@ -2641,7 +2641,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
@@ -2656,7 +2656,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
@@ -2675,7 +2675,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 33,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
@@ -2694,7 +2694,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 67,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = label; ..."
@@ -2713,7 +2713,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = tc; ..."
@@ -2732,7 +2732,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 69,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
@@ -2751,8 +2751,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 60,
+            "filename" : "./include/control/../define.p4",
+            "line" : 67,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -2777,7 +2777,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"
@@ -2792,7 +2792,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/packetio.p4",
+            "filename" : "./include/control/packetio.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.setInvalid()"
@@ -2878,7 +2878,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 152,
             "column" : 12,
             "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
@@ -2897,7 +2897,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 153,
             "column" : 12,
             "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
@@ -2916,7 +2916,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 154,
             "column" : 17,
             "source_fragment" : "= gtpu_ipv4; ..."
@@ -2935,7 +2935,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 155,
             "column" : 16,
             "source_fragment" : "= gtpu_udp; ..."
@@ -2971,7 +2971,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 159,
             "column" : 16,
             "source_fragment" : "spgw_meta.do_spgw = true"
@@ -2990,8 +2990,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 81,
+            "filename" : "./include/control/../define.p4",
+            "line" : 88,
             "column" : 31,
             "source_fragment" : "1w0; ..."
           }
@@ -3086,7 +3086,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 163,
             "column" : 12,
             "source_fragment" : "spgw_meta.do_spgw = true"
@@ -3105,8 +3105,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 82,
+            "filename" : "./include/control/../define.p4",
+            "line" : 89,
             "column" : 33,
             "source_fragment" : "1w1; ..."
           }
@@ -3164,7 +3164,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 146,
             "column" : 8,
             "source_fragment" : "spgw_meta.do_spgw = false"
@@ -3200,7 +3200,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 169,
             "column" : 12,
             "source_fragment" : "return"
@@ -3286,7 +3286,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 35,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -3305,7 +3305,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
+            "filename" : "./include/control/../define.p4",
             "line" : 35,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
@@ -3414,7 +3414,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 140,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
@@ -3466,7 +3466,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)"
@@ -3518,7 +3518,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)"
@@ -3544,7 +3544,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 162,
             "column" : 12,
             "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
@@ -3559,7 +3559,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 163,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
@@ -3581,7 +3581,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 210,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setValid()"
@@ -3600,10 +3600,10 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 39,
-            "column" : 28,
-            "source_fragment" : "4; ..."
+            "filename" : "./include/control/../spgw.p4",
+            "line" : 211,
+            "column" : 8,
+            "source_fragment" : "gtpu_ipv4.version = 4"
           }
         },
         {
@@ -3619,8 +3619,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 47,
+            "filename" : "./include/control/../define.p4",
+            "line" : 54,
             "column" : 28,
             "source_fragment" : "5; ..."
           }
@@ -3638,7 +3638,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 213,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.diffserv = 0"
@@ -3750,7 +3750,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 214,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.total_len = ((bit<16>)std_meta.packet_length ..."
@@ -3769,7 +3769,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 216,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.identification = 0x1513"
@@ -3788,7 +3788,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 217,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.flags = 0"
@@ -3807,7 +3807,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 218,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.frag_offset = 0"
@@ -3826,8 +3826,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 71,
+            "filename" : "./include/control/../define.p4",
+            "line" : 78,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -3845,8 +3845,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 44,
+            "filename" : "./include/control/../define.p4",
+            "line" : 51,
             "column" : 25,
             "source_fragment" : "17; ..."
           }
@@ -3864,7 +3864,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 221,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
@@ -3883,7 +3883,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 222,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
@@ -3902,7 +3902,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 223,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
@@ -3917,7 +3917,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 225,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setValid()"
@@ -3936,7 +3936,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 226,
             "column" : 8,
             "source_fragment" : "gtpu_udp.src_port = 2152"
@@ -3955,7 +3955,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 227,
             "column" : 8,
             "source_fragment" : "gtpu_udp.dst_port = 2152"
@@ -4047,7 +4047,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 228,
             "column" : 8,
             "source_fragment" : "gtpu_udp.len = ((bit<16>)std_meta.packet_length ..."
@@ -4066,7 +4066,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 230,
             "column" : 8,
             "source_fragment" : "gtpu_udp.checksum = 0"
@@ -4081,7 +4081,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 232,
             "column" : 8,
             "source_fragment" : "gtpu.setValid()"
@@ -4100,7 +4100,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 233,
             "column" : 8,
             "source_fragment" : "gtpu.version = 0x01"
@@ -4119,7 +4119,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 234,
             "column" : 8,
             "source_fragment" : "gtpu.pt = 0x01"
@@ -4138,7 +4138,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 235,
             "column" : 8,
             "source_fragment" : "gtpu.spare = 0"
@@ -4157,7 +4157,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 236,
             "column" : 8,
             "source_fragment" : "gtpu.ex_flag = 0"
@@ -4176,7 +4176,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 237,
             "column" : 8,
             "source_fragment" : "gtpu.seq_flag = 0"
@@ -4195,7 +4195,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 238,
             "column" : 8,
             "source_fragment" : "gtpu.npdu_flag = 0"
@@ -4214,7 +4214,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 239,
             "column" : 8,
             "source_fragment" : "gtpu.msgtype = 0xff"
@@ -4266,7 +4266,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 240,
             "column" : 8,
             "source_fragment" : "gtpu.msglen = ((bit<16>)std_meta.packet_length - 14"
@@ -4285,7 +4285,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 241,
             "column" : 8,
             "source_fragment" : "gtpu.teid = spgw_meta.teid"
@@ -4307,7 +4307,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/packetio.p4",
+            "filename" : "./include/control/packetio.p4",
             "line" : 39,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.setValid()"
@@ -4326,7 +4326,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "include/control/packetio.p4",
+            "filename" : "./include/control/packetio.p4",
             "line" : 40,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
@@ -4472,7 +4472,7 @@
           "name" : "spgw_ingress.s1u_filter_table",
           "id" : 3,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "s1u_filter_table"
@@ -4577,7 +4577,7 @@
           "name" : "spgw_ingress.ue_filter_table",
           "id" : 7,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 55,
             "column" : 10,
             "source_fragment" : "ue_filter_table"
@@ -4728,7 +4728,7 @@
           "name" : "spgw_ingress.dl_sess_lookup",
           "id" : 13,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 124,
             "column" : 10,
             "source_fragment" : "dl_sess_lookup"
@@ -4833,7 +4833,7 @@
           "name" : "spgw_ingress.ue_cdr_table",
           "id" : 17,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 134,
             "column" : 10,
             "source_fragment" : "ue_cdr_table"
@@ -4869,7 +4869,7 @@
           "name" : "filtering.ingress_port_vlan",
           "id" : 18,
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 57,
             "column" : 10,
             "source_fragment" : "ingress_port_vlan"
@@ -4917,7 +4917,7 @@
           "name" : "filtering.fwd_classifier",
           "id" : 19,
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
+            "filename" : "./include/control/filtering.p4",
             "line" : 76,
             "column" : 10,
             "source_fragment" : "fwd_classifier"
@@ -4962,7 +4962,7 @@
           "name" : "forwarding.bridging",
           "id" : 20,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 53,
             "column" : 10,
             "source_fragment" : "bridging"
@@ -5003,7 +5003,7 @@
           "name" : "forwarding.mpls",
           "id" : 21,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 65,
             "column" : 10,
             "source_fragment" : "mpls"
@@ -5062,7 +5062,7 @@
           "name" : "forwarding.unicast_v4",
           "id" : 23,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 76,
             "column" : 10,
             "source_fragment" : "unicast_v4"
@@ -5098,7 +5098,7 @@
           "name" : "forwarding.multicast_v4",
           "id" : 24,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 87,
             "column" : 10,
             "source_fragment" : "multicast_v4"
@@ -5139,7 +5139,7 @@
           "name" : "forwarding.acl",
           "id" : 25,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 127,
             "column" : 10,
             "source_fragment" : "acl"
@@ -5232,7 +5232,7 @@
           "name" : "next.simple",
           "id" : 26,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 89,
             "column" : 10,
             "source_fragment" : "simple"
@@ -5337,7 +5337,7 @@
           "name" : "next.hashed",
           "id" : 30,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 103,
             "column" : 10,
             "source_fragment" : "hashed"
@@ -5370,7 +5370,7 @@
           "name" : "next.broadcast",
           "id" : 31,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 126,
             "column" : 10,
             "source_fragment" : "broadcast"
@@ -5482,11 +5482,11 @@
             "input" : [
               {
                 "type" : "field",
-                "value" : ["ethernet", "dst_addr"]
+                "value" : ["ipv4", "dst_addr"]
               },
               {
                 "type" : "field",
-                "value" : ["ethernet", "src_addr"]
+                "value" : ["ipv4", "src_addr"]
               },
               {
                 "type" : "field",
@@ -5509,7 +5509,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()"
@@ -5532,7 +5532,7 @@
           "name" : "node_5",
           "id" : 1,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 147,
             "column" : 12,
             "source_fragment" : "gtpu.isValid()"
@@ -5589,7 +5589,7 @@
           "name" : "node_17",
           "id" : 4,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 167,
             "column" : 12,
             "source_fragment" : "!spgw_meta.do_spgw"
@@ -5643,7 +5643,7 @@
           "name" : "node_20",
           "id" : 6,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 172,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
@@ -5669,7 +5669,7 @@
           "name" : "node_22",
           "id" : 7,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 189,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
@@ -5695,7 +5695,7 @@
           "name" : "node_26",
           "id" : 8,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 190,
             "column" : 16,
             "source_fragment" : "!dl_sess_lookup.apply().hit"
@@ -5725,7 +5725,7 @@
           "name" : "node_31",
           "id" : 9,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 157,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
@@ -5751,7 +5751,7 @@
           "name" : "node_33",
           "id" : 10,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 158,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
@@ -5777,7 +5777,7 @@
           "name" : "node_36",
           "id" : 11,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 165,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
@@ -5803,7 +5803,7 @@
           "name" : "node_38",
           "id" : 12,
           "source_info" : {
-            "filename" : "include/control/forwarding.p4",
+            "filename" : "./include/control/forwarding.p4",
             "line" : 166,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
@@ -5846,7 +5846,7 @@
           "name" : "node_45",
           "id" : 14,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 138,
             "column" : 16,
             "source_fragment" : "!hdr.mpls.isValid()"
@@ -5876,7 +5876,7 @@
           "name" : "node_46",
           "id" : 15,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 139,
             "column" : 19,
             "source_fragment" : "hdr.ipv4.isValid()"
@@ -5899,7 +5899,7 @@
           "name" : "node_50",
           "id" : 16,
           "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"
@@ -5925,7 +5925,7 @@
           "name" : "node_52",
           "id" : 17,
           "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"
@@ -5951,7 +5951,7 @@
           "name" : "node_54",
           "id" : 18,
           "source_info" : {
-            "filename" : "include/control/next.p4",
+            "filename" : "./include/control/next.p4",
             "line" : 161,
             "column" : 12,
             "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
@@ -6059,7 +6059,7 @@
           "name" : "node_58",
           "id" : 19,
           "source_info" : {
-            "filename" : "include/control/packetio.p4",
+            "filename" : "./include/control/packetio.p4",
             "line" : 38,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_port == 255"
@@ -6085,7 +6085,7 @@
           "name" : "node_61",
           "id" : 20,
           "source_info" : {
-            "filename" : "include/spgw.p4",
+            "filename" : "./include/control/../spgw.p4",
             "line" : 245,
             "column" : 12,
             "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"