Fixed typo montana-montara and updated p4c output

Change-Id: I76b4e1edb7cdb7de9927b806ef7e093782ac4078
diff --git a/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/HwPipeconfLoader.java b/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/HwPipeconfLoader.java
index 7886b5c..c278829 100644
--- a/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/HwPipeconfLoader.java
+++ b/pipelines/fabric-pro/src/main/java/org/onosproject/pipelines/fabric/pro/HwPipeconfLoader.java
@@ -52,7 +52,7 @@
 public class HwPipeconfLoader {
 
     private static final String MAVERICKS = "mavericks";
-    private static final String MONTANA = "montana";
+    private static final String MONTARA = "montara";
 
     private static final String PLAIN_FABRIC = "";
     private static final String WITH_SPGW = "-spgw";
@@ -62,7 +62,7 @@
             .of(PLAIN_FABRIC, WITH_SPGW);
 
     private static final Collection<String> PLATFORMS = ImmutableList
-            .of(MAVERICKS, MONTANA);
+            .of(MAVERICKS, MONTARA);
 
     private static final String BASE_PATH = "/p4c-out/tofino/fabric%s/%s";
     private static final String BASE_TOFINO_BIN_PATH = BASE_PATH + "/tofino.bin";
diff --git a/pipelines/fabric-pro/src/main/resources/.gitignore b/pipelines/fabric-pro/src/main/resources/.gitignore
new file mode 100644
index 0000000..1123cbd
--- /dev/null
+++ b/pipelines/fabric-pro/src/main/resources/.gitignore
@@ -0,0 +1 @@
+p4c-out/**/p4_name_lookup.json
diff --git a/pipelines/fabric-pro/src/main/resources/Makefile b/pipelines/fabric-pro/src/main/resources/Makefile
index 585c0d2..5942baa 100644
--- a/pipelines/fabric-pro/src/main/resources/Makefile
+++ b/pipelines/fabric-pro/src/main/resources/Makefile
@@ -1,10 +1,10 @@
 P4_SRC_DIR=$(ONOS_ROOT)/pipelines/fabric/src/main/resources
 
 MAVERICKS_CPU_PORT=320
-MONTANA_CPU_PORT=192
+MONTARA_CPU_PORT=192
 
 MAVERICKS_OPTIONS=-DCPU_PORT=$(MAVERICKS_CPU_PORT)
-MONTANA_OPTIONS=-DCPU_PORT=$(MONTANA_CPU_PORT)
+MONTARA_OPTIONS=-DCPU_PORT=$(MONTARA_CPU_PORT)
 
 all: fabric-tofino fabric-spgw-tofino
 
@@ -16,8 +16,8 @@
 		--p4runtime-format text main.p4
 	p4c -x p4-16 -b tofino-v1model-barefoot \
 		-I $(P4_SRC_DIR) \
-		$(MONTANA_OPTIONS) -o p4c-out/tofino/fabric/montana \
-		--p4runtime-file p4c-out/tofino/fabric/montana/fabric.p4info \
+		$(MONTARA_OPTIONS) -o p4c-out/tofino/fabric/montara \
+		--p4runtime-file p4c-out/tofino/fabric/montara/fabric.p4info \
 		--p4runtime-format text main.p4
 
 fabric-spgw-tofino:
@@ -28,8 +28,8 @@
 		--p4runtime-format text main.p4
 	p4c -x p4-16 -b tofino-v1model-barefoot \
 		-I $(P4_SRC_DIR) \
-		$(MONTANA_OPTIONS) -DWITH_SPGW -o p4c-out/tofino/fabric-spgw/montana \
-		--p4runtime-file p4c-out/tofino/fabric-spgw/montana/fabric.p4info \
+		$(MONTARA_OPTIONS) -DWITH_SPGW -o p4c-out/tofino/fabric-spgw/montara \
+		--p4runtime-file p4c-out/tofino/fabric-spgw/montara/fabric.p4info \
 		--p4runtime-format text main.p4
 
 clean:
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/context.json
index 93fa036..bd6c791 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/context.json
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "02/04/18 01:26:37",
+  "build_date": "02/11/18 20:59:02",
   "compiler_version": "6.0.0-alpha.4",
   "program_name": "main",
   "learn_quanta": [],
@@ -46,6 +46,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -60,7 +77,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -77,7 +94,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -94,7 +128,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -111,45 +145,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -191,25 +191,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -227,25 +208,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -377,6 +339,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -509,7 +591,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -520,7 +602,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -531,7 +613,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -633,7 +715,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -655,29 +737,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -689,12 +760,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -706,102 +810,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -827,7 +844,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -855,7 +872,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -866,7 +883,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -877,7 +894,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -911,7 +928,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -928,7 +945,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -1052,7 +1069,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1154,7 +1171,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1188,7 +1205,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1222,7 +1239,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1273,7 +1290,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1301,7 +1318,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1480,7 +1497,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1508,7 +1525,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1519,7 +1536,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1530,7 +1547,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1541,7 +1558,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1580,7 +1597,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1619,7 +1636,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1636,7 +1653,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1653,7 +1670,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1689,7 +1706,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1723,7 +1740,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1757,7 +1774,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1959,12 +1976,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -1976,6 +1993,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -2093,7 +2127,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -2165,7 +2199,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -2184,7 +2218,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -2203,7 +2237,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -2510,7 +2544,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -2538,7 +2572,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -2757,7 +2791,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2768,7 +2802,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2779,7 +2813,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2807,7 +2841,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2846,7 +2880,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2891,7 +2925,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2902,7 +2936,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2913,7 +2947,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2924,7 +2958,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3031,7 +3065,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3065,7 +3099,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3093,7 +3127,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3110,7 +3144,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3127,7 +3161,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3144,7 +3178,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3161,7 +3195,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3178,7 +3212,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3234,6 +3268,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -3248,7 +3299,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -3265,7 +3316,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -3282,7 +3350,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -3299,45 +3367,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -3379,25 +3413,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -3415,25 +3430,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -3565,6 +3561,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -3697,7 +3813,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -3708,7 +3824,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3719,7 +3835,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3821,7 +3937,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3843,29 +3959,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -3877,12 +3982,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -3894,102 +4032,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -4015,7 +4066,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4043,7 +4094,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4054,7 +4105,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4065,7 +4116,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4099,7 +4150,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4116,7 +4167,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -4240,7 +4291,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4342,7 +4393,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4376,7 +4427,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4410,7 +4461,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4461,7 +4512,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4489,7 +4540,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4668,7 +4719,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4696,7 +4747,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4707,7 +4758,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4718,7 +4769,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4729,7 +4780,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4768,7 +4819,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4807,7 +4858,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4824,7 +4875,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4841,7 +4892,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4877,7 +4928,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4911,7 +4962,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4945,7 +4996,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5147,12 +5198,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -5164,6 +5215,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -5281,7 +5349,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -5353,7 +5421,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -5372,7 +5440,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -5391,7 +5459,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -5698,7 +5766,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5726,7 +5794,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5945,7 +6013,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5956,7 +6024,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5967,7 +6035,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5995,7 +6063,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6034,7 +6102,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6079,7 +6147,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6090,7 +6158,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6101,7 +6169,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6112,7 +6180,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6219,7 +6287,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6253,7 +6321,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6281,7 +6349,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6298,7 +6366,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6315,7 +6383,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6332,7 +6400,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6349,7 +6417,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6366,7 +6434,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6422,6 +6490,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -6436,7 +6521,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -6453,7 +6538,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -6470,7 +6572,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -6487,45 +6589,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -6567,25 +6635,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -6603,25 +6652,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -6753,6 +6783,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -6885,7 +7035,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -6896,7 +7046,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -6907,7 +7057,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -7009,7 +7159,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -7031,29 +7181,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -7065,12 +7204,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -7082,102 +7254,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -7203,7 +7288,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7231,7 +7316,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7242,7 +7327,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7253,7 +7338,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7287,7 +7372,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7304,7 +7389,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -7428,7 +7513,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7530,7 +7615,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7564,7 +7649,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7598,7 +7683,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7649,7 +7734,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -7677,7 +7762,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -7856,7 +7941,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7884,7 +7969,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7895,7 +7980,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7906,7 +7991,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7917,7 +8002,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7956,7 +8041,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7995,7 +8080,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8012,7 +8097,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8029,7 +8114,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8065,7 +8150,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8099,7 +8184,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8133,7 +8218,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8335,12 +8420,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -8352,6 +8437,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -8469,7 +8571,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -8541,7 +8643,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -8560,7 +8662,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -8579,7 +8681,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -8886,7 +8988,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8914,7 +9016,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -9133,7 +9235,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9144,7 +9246,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9155,7 +9257,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9183,7 +9285,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9222,7 +9324,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9267,7 +9369,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9278,7 +9380,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9289,7 +9391,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9300,7 +9402,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9407,7 +9509,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9441,7 +9543,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9469,7 +9571,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9486,7 +9588,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9503,7 +9605,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9520,7 +9622,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9537,7 +9639,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9554,7 +9656,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9610,6 +9712,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -9624,7 +9743,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -9641,7 +9760,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -9658,7 +9794,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -9675,45 +9811,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -9755,25 +9857,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -9791,25 +9874,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -9941,6 +10005,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -10073,7 +10257,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -10084,7 +10268,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10095,7 +10279,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10197,7 +10381,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10219,29 +10403,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -10253,12 +10426,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -10270,102 +10476,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -10391,7 +10510,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10419,7 +10538,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10430,7 +10549,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10441,7 +10560,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10475,7 +10594,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10492,7 +10611,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -10616,7 +10735,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10718,7 +10837,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10752,7 +10871,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10786,7 +10905,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10837,7 +10956,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -10865,7 +10984,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11044,7 +11163,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11072,7 +11191,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11083,7 +11202,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11094,7 +11213,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11105,7 +11224,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11144,7 +11263,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11183,7 +11302,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11200,7 +11319,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11217,7 +11336,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11253,7 +11372,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11287,7 +11406,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11321,7 +11440,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11523,12 +11642,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -11540,6 +11659,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -11657,7 +11793,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -11729,7 +11865,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -11748,7 +11884,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -11767,7 +11903,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -12074,7 +12210,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -12102,7 +12238,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -12321,7 +12457,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12332,7 +12468,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12343,7 +12479,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12371,7 +12507,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12410,7 +12546,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12455,7 +12591,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12466,7 +12602,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12477,7 +12613,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12488,7 +12624,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12595,7 +12731,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12629,7 +12765,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12657,7 +12793,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12674,7 +12810,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12691,7 +12827,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12708,7 +12844,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12725,7 +12861,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12742,7 +12878,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12798,6 +12934,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -12812,7 +12965,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -12829,7 +12982,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -12846,7 +13016,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -12863,45 +13033,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -12943,25 +13079,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -12979,25 +13096,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -13129,6 +13227,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -13261,7 +13479,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -13272,7 +13490,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13283,7 +13501,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13385,7 +13603,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13407,29 +13625,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -13441,12 +13648,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -13458,102 +13698,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -13579,7 +13732,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13607,7 +13760,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13618,7 +13771,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13629,7 +13782,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13663,7 +13816,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13680,7 +13833,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -13804,7 +13957,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13906,7 +14059,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13940,7 +14093,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13974,7 +14127,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14025,7 +14178,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14053,7 +14206,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14232,7 +14385,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14260,7 +14413,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14271,7 +14424,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14282,7 +14435,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14293,7 +14446,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14332,7 +14485,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14371,7 +14524,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14388,7 +14541,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14405,7 +14558,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14441,7 +14594,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14475,7 +14628,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14509,7 +14662,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14711,12 +14864,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -14728,6 +14881,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -14845,7 +15015,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -14917,7 +15087,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -14936,7 +15106,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -14955,7 +15125,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -15262,7 +15432,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -15290,7 +15460,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -15509,7 +15679,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15520,7 +15690,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15531,7 +15701,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15559,7 +15729,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15598,7 +15768,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15643,7 +15813,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15654,7 +15824,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15665,7 +15835,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15676,7 +15846,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15783,7 +15953,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15817,7 +15987,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15845,7 +16015,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15862,7 +16032,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15879,7 +16049,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15896,7 +16066,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15913,7 +16083,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15930,7 +16100,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15986,6 +16156,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -16000,7 +16187,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -16017,7 +16204,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -16034,7 +16238,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -16051,45 +16255,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -16131,25 +16301,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -16167,25 +16318,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -16317,6 +16449,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -16449,7 +16701,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -16460,7 +16712,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16471,7 +16723,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16573,7 +16825,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16595,29 +16847,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -16629,12 +16870,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -16646,102 +16920,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -16767,7 +16954,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16795,7 +16982,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16806,7 +16993,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16817,7 +17004,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16851,7 +17038,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16868,7 +17055,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -16992,7 +17179,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17094,7 +17281,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17128,7 +17315,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17162,7 +17349,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17213,7 +17400,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17241,7 +17428,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17420,7 +17607,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17448,7 +17635,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17459,7 +17646,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17470,7 +17657,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17481,7 +17668,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17520,7 +17707,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17559,7 +17746,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17576,7 +17763,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17593,7 +17780,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17629,7 +17816,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17663,7 +17850,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17697,7 +17884,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17899,12 +18086,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -17916,6 +18103,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -18033,7 +18237,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -18105,7 +18309,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -18124,7 +18328,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -18143,7 +18347,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -18450,7 +18654,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -18478,7 +18682,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -18697,7 +18901,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18708,7 +18912,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18719,7 +18923,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18747,7 +18951,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18786,7 +18990,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18831,7 +19035,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18842,7 +19046,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18853,7 +19057,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18864,7 +19068,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18971,7 +19175,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19005,7 +19209,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19033,7 +19237,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19050,7 +19254,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19067,7 +19271,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19084,7 +19288,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19101,7 +19305,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19118,7 +19322,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19174,6 +19378,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -19188,7 +19409,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -19205,7 +19426,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -19222,7 +19460,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -19239,45 +19477,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -19319,25 +19523,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -19355,25 +19540,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -19505,6 +19671,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -19637,7 +19923,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -19648,7 +19934,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19659,7 +19945,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19761,7 +20047,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19783,29 +20069,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -19817,12 +20092,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -19834,102 +20142,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -19955,7 +20176,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19983,7 +20204,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19994,7 +20215,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20005,7 +20226,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20039,7 +20260,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20056,7 +20277,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -20180,7 +20401,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20282,7 +20503,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20316,7 +20537,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20350,7 +20571,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20401,7 +20622,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20429,7 +20650,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20608,7 +20829,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20636,7 +20857,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20647,7 +20868,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20658,7 +20879,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20669,7 +20890,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20708,7 +20929,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20747,7 +20968,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20764,7 +20985,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20781,7 +21002,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20817,7 +21038,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20851,7 +21072,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20885,7 +21106,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21087,12 +21308,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -21104,6 +21325,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -21221,7 +21459,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -21293,7 +21531,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -21312,7 +21550,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -21331,7 +21569,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -21638,7 +21876,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21666,7 +21904,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21885,7 +22123,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21896,7 +22134,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21907,7 +22145,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21935,7 +22173,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21974,7 +22212,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22019,7 +22257,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22030,7 +22268,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22041,7 +22279,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22052,7 +22290,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22159,7 +22397,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22193,7 +22431,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22221,7 +22459,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22238,7 +22476,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22255,7 +22493,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22272,7 +22510,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22289,7 +22527,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22306,7 +22544,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22362,6 +22600,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -22376,7 +22631,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -22393,7 +22648,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -22410,7 +22682,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -22427,45 +22699,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -22507,25 +22745,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -22543,25 +22762,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -22693,6 +22893,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -22825,7 +23145,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -22836,7 +23156,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22847,7 +23167,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22949,7 +23269,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22971,29 +23291,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -23005,12 +23314,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -23022,102 +23364,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -23143,7 +23398,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23171,7 +23426,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23182,7 +23437,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23193,7 +23448,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23227,7 +23482,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23244,7 +23499,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -23368,7 +23623,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23470,7 +23725,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23504,7 +23759,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23538,7 +23793,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23589,7 +23844,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -23617,7 +23872,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -23796,7 +24051,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23824,7 +24079,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23835,7 +24090,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23846,7 +24101,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23857,7 +24112,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23896,7 +24151,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23935,7 +24190,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23952,7 +24207,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23969,7 +24224,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -24005,7 +24260,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24039,7 +24294,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24073,7 +24328,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24275,12 +24530,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -24292,6 +24547,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -24409,7 +24681,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -24481,7 +24753,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -24500,7 +24772,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -24519,7 +24791,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -24826,7 +25098,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24854,7 +25126,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -25073,7 +25345,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25084,7 +25356,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25095,7 +25367,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25123,7 +25395,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25162,7 +25434,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25207,7 +25479,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25218,7 +25490,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25229,7 +25501,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25240,7 +25512,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25347,7 +25619,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25381,7 +25653,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25409,7 +25681,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25426,7 +25698,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25443,7 +25715,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25460,7 +25732,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25477,7 +25749,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25494,7 +25766,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25550,6 +25822,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -25564,7 +25853,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -25581,7 +25870,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -25598,7 +25904,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -25615,45 +25921,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -25695,25 +25967,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -25731,25 +25984,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -25881,6 +26115,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -26013,7 +26367,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -26024,7 +26378,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26035,7 +26389,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26137,7 +26491,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26159,29 +26513,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -26193,12 +26536,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -26210,102 +26586,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -26331,7 +26620,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26359,7 +26648,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26370,7 +26659,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26381,7 +26670,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26415,7 +26704,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26432,7 +26721,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -26556,7 +26845,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26658,7 +26947,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26692,7 +26981,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26726,7 +27015,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26777,7 +27066,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -26805,7 +27094,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -26984,7 +27273,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27012,7 +27301,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27023,7 +27312,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27034,7 +27323,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27045,7 +27334,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27084,7 +27373,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27123,7 +27412,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27140,7 +27429,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27157,7 +27446,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27193,7 +27482,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27227,7 +27516,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27261,7 +27550,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27463,12 +27752,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -27480,6 +27769,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -27597,7 +27903,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -27669,7 +27975,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -27688,7 +27994,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -27707,7 +28013,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -28014,7 +28320,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -28042,7 +28348,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -28261,7 +28567,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28272,7 +28578,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28283,7 +28589,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28311,7 +28617,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28350,7 +28656,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28395,7 +28701,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28406,7 +28712,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28417,7 +28723,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28428,7 +28734,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28535,7 +28841,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28569,7 +28875,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28597,7 +28903,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28614,7 +28920,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28631,7 +28937,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28648,7 +28954,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28665,7 +28971,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28682,7 +28988,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28738,6 +29044,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -28752,7 +29075,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -28769,7 +29092,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -28786,7 +29126,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -28803,45 +29143,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -28883,25 +29189,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -28919,25 +29206,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -29069,6 +29337,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -29201,7 +29589,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -29212,7 +29600,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29223,7 +29611,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29325,7 +29713,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29347,29 +29735,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -29381,12 +29758,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -29398,102 +29808,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -29519,7 +29842,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29547,7 +29870,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29558,7 +29881,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29569,7 +29892,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29603,7 +29926,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29620,7 +29943,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -29744,7 +30067,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29846,7 +30169,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29880,7 +30203,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29914,7 +30237,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29965,7 +30288,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -29993,7 +30316,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30172,7 +30495,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30200,7 +30523,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30211,7 +30534,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30222,7 +30545,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30233,7 +30556,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30272,7 +30595,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30311,7 +30634,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30328,7 +30651,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30345,7 +30668,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30381,7 +30704,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30415,7 +30738,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30449,7 +30772,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30651,12 +30974,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -30668,6 +30991,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -30785,7 +31125,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -30857,7 +31197,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -30876,7 +31216,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -30895,7 +31235,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -31202,7 +31542,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -31230,7 +31570,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -31449,7 +31789,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31460,7 +31800,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31471,7 +31811,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31499,7 +31839,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31538,7 +31878,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31583,7 +31923,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31594,7 +31934,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31605,7 +31945,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31616,7 +31956,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31723,7 +32063,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31757,7 +32097,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31785,7 +32125,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31802,7 +32142,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31819,7 +32159,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31836,7 +32176,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31853,7 +32193,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31870,7 +32210,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31926,6 +32266,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -31940,7 +32297,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -31957,7 +32314,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -31974,7 +32348,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -31991,45 +32365,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -32071,25 +32411,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -32107,25 +32428,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -32257,6 +32559,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -32389,7 +32811,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -32400,7 +32822,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32411,7 +32833,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32513,7 +32935,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32535,29 +32957,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -32569,12 +32980,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -32586,102 +33030,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -32707,7 +33064,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32735,7 +33092,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32746,7 +33103,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32757,7 +33114,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32791,7 +33148,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32808,7 +33165,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -32932,7 +33289,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33034,7 +33391,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33068,7 +33425,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33102,7 +33459,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33153,7 +33510,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33181,7 +33538,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33360,7 +33717,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33388,7 +33745,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33399,7 +33756,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33410,7 +33767,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33421,7 +33778,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33460,7 +33817,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33499,7 +33856,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33516,7 +33873,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33533,7 +33890,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33569,7 +33926,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33603,7 +33960,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33637,7 +33994,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33839,12 +34196,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -33856,6 +34213,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -33973,7 +34347,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -34045,7 +34419,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -34064,7 +34438,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -34083,7 +34457,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -34390,7 +34764,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -34418,7 +34792,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -34637,7 +35011,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34648,7 +35022,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34659,7 +35033,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34687,7 +35061,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34726,7 +35100,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34771,7 +35145,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34782,7 +35156,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34793,7 +35167,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34804,7 +35178,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34911,7 +35285,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34945,7 +35319,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34973,7 +35347,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34990,7 +35364,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35007,7 +35381,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35024,7 +35398,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35041,7 +35415,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35058,7 +35432,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35114,6 +35488,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -35128,7 +35519,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -35145,7 +35536,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -35162,7 +35570,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -35179,45 +35587,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -35259,25 +35633,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -35295,25 +35650,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -35445,6 +35781,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -35577,7 +36033,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -35588,7 +36044,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35599,7 +36055,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35701,7 +36157,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35723,29 +36179,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -35757,12 +36202,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -35774,102 +36252,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -35895,7 +36286,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35923,7 +36314,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35934,7 +36325,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35945,7 +36336,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35979,7 +36370,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35996,7 +36387,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -36120,7 +36511,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36222,7 +36613,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36256,7 +36647,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36290,7 +36681,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36341,7 +36732,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36369,7 +36760,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36548,7 +36939,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36576,7 +36967,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36587,7 +36978,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36598,7 +36989,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36609,7 +37000,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36648,7 +37039,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36687,7 +37078,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36704,7 +37095,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36721,7 +37112,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36757,7 +37148,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36791,7 +37182,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36825,7 +37216,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37027,12 +37418,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -37044,6 +37435,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -37161,7 +37569,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -37233,7 +37641,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -37252,7 +37660,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -37271,7 +37679,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -37578,7 +37986,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37606,7 +38014,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37825,7 +38233,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37836,7 +38244,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37847,7 +38255,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37875,7 +38283,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37914,7 +38322,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37959,7 +38367,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37970,7 +38378,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37981,7 +38389,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37992,7 +38400,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38099,7 +38507,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38133,7 +38541,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38161,7 +38569,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38178,7 +38586,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38195,7 +38603,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38212,7 +38620,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38229,7 +38637,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38246,7 +38654,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38332,7 +38740,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -38889,10 +39297,10 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "immediate", "name": "$data0" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             }
           ]
@@ -38974,7 +39382,7 @@
               "dest": { "type": "phv", "name": "packet_in.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B24" }
+                { "type": "phv", "name": "B25" }
               ]
             },
             {
@@ -39078,7 +39486,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -39632,10 +40040,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "action_param", "name": "$data1" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             },
             {
@@ -40018,10 +40426,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "action_param", "name": "$data1" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             },
             {
@@ -40059,14 +40467,14 @@
                 "number_memory_units_per_table_word": 0
               }
             ],
-            "result_physical_buses": [ 1 ],
+            "result_physical_buses": [ 2 ],
             "action_format": [
               {
-                "action_name": "act_5",
+                "action_name": "act_4",
                 "action_handle": 536870919,
                 "table_name": "filtering_ingress_port_vlan",
                 "next_table": 0,
-                "next_table_full": 97,
+                "next_table_full": 98,
                 "vliw_instruction": 1,
                 "vliw_instruction_full": 65,
                 "immediate_fields": []
@@ -40080,7 +40488,7 @@
       },
       "actions": [
         {
-          "name": "act_5",
+          "name": "act_4",
           "handle": 536870919,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -40102,12 +40510,12 @@
               "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
               "src": [
                 { "type": "immmediate", "name": "0" },
                 { "type": "phv", "name": "B13" }
@@ -40133,945 +40541,54 @@
     {
       "direction": "ingress",
       "handle": 16777223,
-      "name": "spgw_ingress.s1u_filter_table",
+      "name": "tbl_act_2",
       "table_type": "match",
-      "size": 3072,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": [],
-      "default_action_handle": 536870920,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "ipv4.dst_addr",
-          "position": 0,
-          "match_type": "exact",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false,
-          "instance_name": "ipv4",
-          "field_name": "dst_addr"
-        }
-      ],
+      "size": 1,
+      "preferred_match_type": "exact",
       "match_attributes": {
         "stage_tables": [
           {
             "stage_number": 2,
-            "size": 3072,
-            "stage_table_type": "hash_match",
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
             "logical_table_id": 1,
-            "has_attached_gateway": false,
-            "hash_functions": [
+            "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
+            "pack_format": [
               {
-                "hash_bits": [
-                  {
-                    "hash_bit": 0,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 1,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 2,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 3,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 4,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 5,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 6,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 7,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 8,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 9,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 10,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 11,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 12,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 13,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 14,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 15,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 16,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 17,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 18,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 19,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 20,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 21,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 22,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 23,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 24,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 25,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 26,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 27,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 28,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 29,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  }
-                ]
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
               }
             ],
+            "result_physical_buses": [ 1 ],
             "action_format": [
               {
-                "action_name": "NoAction",
+                "action_name": "act_2",
                 "action_handle": 536870920,
                 "table_name": "spgw_ingress_ue_filter_table",
                 "next_table": 0,
                 "next_table_full": 34,
-                "vliw_instruction": 0,
-                "vliw_instruction_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
                 "immediate_fields": []
               }
             ],
-            "result_physical_buses": [ 14 ],
-            "pack_format": [
-              {
-                "memory_word_width": 128,
-                "table_word_width": 128,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 1
-              }
-            ],
-            "memory_resource_allocation": null,
-            "ways": [
-              {
-                "stage_number": 2,
-                "way_number": 0,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 0,
-                  "hash_entry_bit_hi": 9,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ]
-                }
-              },
-              {
-                "stage_number": 2,
-                "way_number": 1,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 10,
-                  "hash_entry_bit_hi": 19,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ]
-                }
-              },
-              {
-                "stage_number": 2,
-                "way_number": 2,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 20,
-                  "hash_entry_bit_hi": 29,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 88 ], "vpns": [ 2 ] } ]
-                }
-              }
-            ]
+            "hash_functions": []
           }
         ],
-        "match_type": "exact",
+        "match_type": "match_with_no_key",
         "uses_dynamic_key_masks": false
       },
       "actions": [
         {
-          "name": "NoAction",
+          "name": "act_2",
           "handle": 536870920,
           "indirect_resources": [],
           "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
           "p4_parameters": [],
           "override_meter_addr": false,
           "override_meter_addr_pfe": false,
@@ -41083,9 +40600,106 @@
           "override_stateful_addr_pfe": false,
           "override_stateful_full_addr": 0,
           "is_action_meter_color_aware": false,
-          "primitives": []
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "phv", "name": "W1" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "phv", "name": "W4" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.diffserv" },
+              "src": [ { "type": "phv", "name": "B3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.total_len" },
+              "src": [ { "type": "phv", "name": "H12" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.identification" },
+              "src": [ { "type": "phv", "name": "H14" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [ { "type": "phv", "name": "B7" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.protocol" },
+              "src": [ { "type": "phv", "name": "B10" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.src_port" },
+              "src": [ { "type": "phv", "name": "H3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.dst_port" },
+              "src": [ { "type": "phv", "name": "H32" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.len" },
+              "src": [ { "type": "phv", "name": "H34" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.checksum" },
+              "src": [ { "type": "phv", "name": "H36" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B1" },
+              "src": [ { "type": "phv", "name": "B0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H9" },
+              "src": [ { "type": "phv", "name": "H8" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "W12" },
+              "src": [
+                { "type": "phv", "name": "W12" },
+                { "type": "phv", "name": "W12" }
+              ]
+            }
+          ]
         }
-      ]
+      ],
+      "default_action_handle": 536870920,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
     },
     {
       "direction": "ingress",
@@ -41157,7 +40771,7 @@
               "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
               "spare_bank_memory_unit": 0
             },
-            "default_next_table": 2,
+            "default_next_table": 0,
             "result_physical_buses": [ 0 ],
             "ternary_indirection_stage_table": {
               "stage_number": 2,
@@ -41984,7 +41598,7 @@
                   "action_handle": 536870921,
                   "table_name": "tbl_act_19",
                   "next_table": 0,
-                  "next_table_full": 49,
+                  "next_table_full": 64,
                   "vliw_instruction": 0,
                   "vliw_instruction_full": 64,
                   "immediate_fields": []
@@ -42044,7 +41658,1060 @@
     {
       "direction": "ingress",
       "handle": 16777225,
-      "name": "tbl_act_2",
+      "name": "spgw_ingress.s1u_filter_table",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870922,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "spgw.s1u_sgw_addr",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "spgw",
+          "field_name": "s1u_sgw_addr"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870922,
+                "table_name": "tbl_act_19",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "result_physical_buses": [ 14 ],
+            "pack_format": [
+              {
+                "memory_word_width": 128,
+                "table_word_width": 128,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1
+              }
+            ],
+            "memory_resource_allocation": null,
+            "ways": [
+              {
+                "stage_number": 3,
+                "way_number": 0,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 0,
+                  "hash_entry_bit_hi": 9,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ]
+                }
+              },
+              {
+                "stage_number": 3,
+                "way_number": 1,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 10,
+                  "hash_entry_bit_hi": 19,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ]
+                }
+              },
+              {
+                "stage_number": 3,
+                "way_number": 2,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 20,
+                  "hash_entry_bit_hi": 29,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 88 ], "vpns": [ 2 ] } ]
+                }
+              }
+            ]
+          }
+        ],
+        "match_type": "exact",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870922,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": []
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777226,
+      "name": "tbl_act_3",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 2,
+            "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
+            "pack_format": [
+              {
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_1",
+                "action_handle": 536870923,
+                "table_name": "tbl_act_19",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_1",
+          "handle": 536870923,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.direction" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870923,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777227,
+      "name": "tbl_act_4",
       "table_type": "match",
       "size": 1,
       "preferred_match_type": "exact",
@@ -42069,101 +42736,13 @@
             "result_physical_buses": [ 0 ],
             "action_format": [
               {
-                "action_name": "act_1",
-                "action_handle": 536870922,
-                "table_name": "tbl_act_17",
+                "action_name": "act_3",
+                "action_handle": 536870924,
+                "table_name": "tbl_act_19",
                 "next_table": 0,
                 "next_table_full": 64,
                 "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": []
-              }
-            ],
-            "hash_functions": []
-          }
-        ],
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false
-      },
-      "actions": [
-        {
-          "name": "act_1",
-          "handle": 536870922,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "disallowed_as_default_action_reason": "",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0,
-          "is_action_meter_color_aware": false,
-          "primitives": [
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
-              "src": [
-                { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
-              ]
-            }
-          ]
-        }
-      ],
-      "default_action_handle": 536870922,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": []
-    },
-    {
-      "direction": "ingress",
-      "handle": 16777226,
-      "name": "tbl_act_4",
-      "table_type": "match",
-      "size": 1,
-      "preferred_match_type": "exact",
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 3,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "logical_table_id": 2,
-            "has_attached_gateway": true,
-            "memory_resource_allocation": null,
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0
-              }
-            ],
-            "result_physical_buses": [ 2 ],
-            "action_format": [
-              {
-                "action_name": "act_3",
-                "action_handle": 536870923,
-                "table_name": "cond-5",
-                "next_table": 0,
-                "next_table_full": 65,
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 65,
+                "vliw_instruction_full": 66,
                 "immediate_fields": []
               }
             ],
@@ -42176,94 +42755,6 @@
       "actions": [
         {
           "name": "act_3",
-          "handle": 536870923,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "disallowed_as_default_action_reason": "",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0,
-          "is_action_meter_color_aware": false,
-          "primitives": [
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
-              "src": [
-                { "type": "immmediate", "name": "2" },
-                { "type": "phv", "name": "B13" }
-              ]
-            }
-          ]
-        }
-      ],
-      "default_action_handle": 536870923,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": []
-    },
-    {
-      "direction": "ingress",
-      "handle": 16777227,
-      "name": "tbl_act_5",
-      "table_type": "match",
-      "size": 1,
-      "preferred_match_type": "exact",
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 3,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "logical_table_id": 1,
-            "has_attached_gateway": true,
-            "memory_resource_allocation": null,
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0
-              }
-            ],
-            "result_physical_buses": [ 1 ],
-            "action_format": [
-              {
-                "action_name": "act_4",
-                "action_handle": 536870924,
-                "table_name": "cond-5",
-                "next_table": 0,
-                "next_table_full": 65,
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": []
-              }
-            ],
-            "hash_functions": []
-          }
-        ],
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false
-      },
-      "actions": [
-        {
-          "name": "act_4",
           "handle": 536870924,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -42282,10 +42773,18 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.direction" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -42308,682 +42807,50 @@
     {
       "direction": "ingress",
       "handle": 16777228,
-      "name": "tbl_act_3",
+      "name": "tbl_act_5",
       "table_type": "match",
-      "size": 512,
+      "size": 1,
+      "preferred_match_type": "exact",
       "match_attributes": {
         "stage_tables": [
           {
             "stage_number": 4,
-            "size": 512,
-            "stage_table_type": "ternary_match",
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
             "logical_table_id": 0,
             "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
             "pack_format": [
               {
                 "table_word_width": 0,
-                "memory_word_width": 47,
+                "memory_word_width": 0,
                 "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1
-                      },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2
-                      }
-                    ]
-                  }
-                ]
+                "number_memory_units_per_table_word": 0
               }
             ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [], "vpns": [] } ],
-              "spare_bank_memory_unit": 0
-            },
-            "default_next_table": 1,
-            "result_physical_buses": [],
-            "ternary_indirection_stage_table": {
-              "stage_number": 4,
-              "stage_table_type": "ternary_indirection",
-              "size": 512,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 16,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 15,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 120,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 121,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 127,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 14,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 112,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 113,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 13,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 104,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 105,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 111,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 12,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 103,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 11,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 88,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 89,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 95,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 10,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 80,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 81,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 9,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 72,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 73,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 79,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 8,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 71,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 7,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 56,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 57,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 63,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 6,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 48,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 49,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 5,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 40,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 41,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 47,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 4,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 39,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 24,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 25,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 31,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 16,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 17,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 8,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 9,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 15,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 7,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    }
-                  ]
-                }
-              ],
-              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
-              "action_format": [
-                {
-                  "action_name": "act_2",
-                  "action_handle": 536870925,
-                  "table_name": "cond-5",
-                  "next_table": 0,
-                  "next_table_full": 65,
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 4,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 5,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 3,
-                      "dest_width": 1
-                    }
-                  ]
-                }
-              ]
-            }
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_5",
+                "action_handle": 536870925,
+                "table_name": "cond-5",
+                "next_table": 0,
+                "next_table_full": 80,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
           }
         ],
-        "match_type": "ternary"
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
       },
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": [],
       "actions": [
         {
-          "name": "act_2",
+          "name": "act_5",
           "handle": 536870925,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -43002,99 +42869,10 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
+              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.diffserv" },
-              "src": [ { "type": "phv", "name": "B3" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.total_len" },
-              "src": [ { "type": "phv", "name": "H12" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.identification" },
-              "src": [ { "type": "phv", "name": "H14" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.ttl" },
-              "src": [ { "type": "phv", "name": "B7" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.protocol" },
-              "src": [ { "type": "phv", "name": "B10" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.src_addr" },
-              "src": [ { "type": "phv", "name": "W0" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.dst_addr" },
-              "src": [ { "type": "phv", "name": "W2" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.$valid" },
-              "src": [
-                { "type": "phv", "name": "W12" },
-                { "type": "phv", "name": "W10" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.src_port" },
-              "src": [ { "type": "phv", "name": "H3" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.dst_port" },
-              "src": [ { "type": "phv", "name": "H32" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.len" },
-              "src": [ { "type": "phv", "name": "H34" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.checksum" },
-              "src": [ { "type": "phv", "name": "H36" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.$valid" },
-              "src": [
-                { "type": "phv", "name": "W12" },
-                { "type": "phv", "name": "W11" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B1" },
-              "src": [ { "type": "phv", "name": "B0" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "H9" },
-              "src": [ { "type": "phv", "name": "H8" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "W12" },
-              "src": [
-                { "type": "immediate", "name": "$data0" },
-                { "type": "phv", "name": "W12" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -43106,7 +42884,13 @@
       "ap_bind_indirect_res_to_match": [],
       "is_resource_controllable": true,
       "uses_range": false,
-      "match_key_fields": []
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
     },
     {
       "direction": "ingress",
@@ -43150,7 +42934,7 @@
             "stage_number": 5,
             "size": 3072,
             "stage_table_type": "hash_match",
-            "logical_table_id": 0,
+            "logical_table_id": 1,
             "has_attached_gateway": true,
             "hash_functions": [
               {
@@ -43159,7 +42943,7 @@
                     "hash_bit": 0,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43178,7 +42962,7 @@
                     "hash_bit": 1,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43195,7 +42979,6 @@
                     "hash_bit": 2,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43207,14 +42990,14 @@
                       { "field_bit": 21, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 3,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43230,14 +43013,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 4,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43245,28 +43028,28 @@
                       { "field_bit": 22, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 5,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 18, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 20, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 6,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43279,14 +43062,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 7,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43296,14 +43079,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 8,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43316,14 +43099,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 9,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43335,14 +43118,15 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 10,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43361,7 +43145,7 @@
                     "hash_bit": 11,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43377,7 +43161,6 @@
                     "hash_bit": 12,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43388,14 +43171,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 13,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43408,14 +43191,14 @@
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 14,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43424,14 +43207,14 @@
                       { "field_bit": 21, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 15,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43444,14 +43227,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 16,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43462,14 +43245,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 17,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43481,14 +43264,14 @@
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 18,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43496,14 +43279,14 @@
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 19,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43520,14 +43303,15 @@
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 20,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43543,7 +43327,7 @@
                     "hash_bit": 21,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43564,7 +43348,6 @@
                     "hash_bit": 22,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 18, "field_name": "ipv4.dst_addr" },
@@ -43576,14 +43359,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 23,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43591,14 +43374,14 @@
                       { "field_bit": 19, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 24,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43611,14 +43394,14 @@
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 25,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43631,14 +43414,14 @@
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 26,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43650,14 +43433,14 @@
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 27,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43672,14 +43455,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 28,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43692,14 +43475,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 29,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43707,7 +43490,8 @@
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 22, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   }
                 ]
@@ -43719,7 +43503,7 @@
                 "action_handle": 536870927,
                 "table_name": "tbl_spgw_ingress_drop_now_0",
                 "next_table": 0,
-                "next_table_full": 81,
+                "next_table_full": 82,
                 "vliw_instruction": 0,
                 "vliw_instruction_full": 65,
                 "immediate_fields": []
@@ -43729,12 +43513,12 @@
                 "action_handle": 536870926,
                 "table_name": "tbl_spgw_ingress_drop_now_0",
                 "next_table": 1,
-                "next_table_full": 81,
+                "next_table_full": 82,
                 "vliw_instruction": 1,
                 "vliw_instruction_full": 64,
                 "immediate_fields": [
                   {
-                    "param_name": "teid",
+                    "param_name": "s1u_enb_addr",
                     "param_type": "parameter",
                     "param_shift": 0,
                     "dest_start": 0,
@@ -44179,12 +43963,12 @@
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.teid" },
-              "src": [ { "type": "immediate", "name": "teid" } ]
+              "src": [ { "type": "action_param", "name": "teid" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
-              "src": [ { "type": "action_param", "name": "s1u_enb_addr" } ]
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
@@ -44206,7 +43990,7 @@
           "stage_number": 5,
           "size": 4096,
           "stage_table_type": "action_data",
-          "logical_table_id": 0,
+          "logical_table_id": 1,
           "pack_format": [
             {
               "memory_word_width": 128,
@@ -44261,7 +44045,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 64,
-                      "field_name": "s1u_enb_addr"
+                      "field_name": "s1u_sgw_addr"
                     },
                     {
                       "start_bit": 0,
@@ -44270,7 +44054,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 96,
-                      "field_name": "s1u_sgw_addr"
+                      "field_name": "teid"
                     }
                   ]
                 },
@@ -44284,7 +44068,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 0,
-                      "field_name": "s1u_enb_addr"
+                      "field_name": "s1u_sgw_addr"
                     },
                     {
                       "start_bit": 0,
@@ -44293,7 +44077,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 32,
-                      "field_name": "s1u_sgw_addr"
+                      "field_name": "teid"
                     }
                   ]
                 }
@@ -44364,12 +44148,12 @@
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.teid" },
-              "src": [ { "type": "immediate", "name": "teid" } ]
+              "src": [ { "type": "action_param", "name": "teid" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
-              "src": [ { "type": "action_param", "name": "s1u_enb_addr" } ]
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
@@ -44394,7 +44178,7 @@
             "stage_number": 5,
             "size": 1,
             "stage_table_type": "match_with_no_key",
-            "logical_table_id": 1,
+            "logical_table_id": 2,
             "has_attached_gateway": true,
             "memory_resource_allocation": null,
             "default_next_table": 255,
@@ -44406,7 +44190,7 @@
                 "number_memory_units_per_table_word": 0
               }
             ],
-            "result_physical_buses": [ 0 ],
+            "result_physical_buses": [ 1 ],
             "action_format": [
               {
                 "action_name": "spgw_ingress.drop_now",
@@ -44457,7 +44241,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -45062,7 +44846,7 @@
               {
                 "action_name": "spgw_ingress.update_ue_cdr",
                 "action_handle": 536870929,
-                "table_name": "filtering_ingress_port_vlan",
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
                 "next_table": 0,
                 "next_table_full": 97,
                 "vliw_instruction": 0,
@@ -45072,7 +44856,7 @@
               {
                 "action_name": "NoAction",
                 "action_handle": 536870930,
-                "table_name": "filtering_ingress_port_vlan",
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
                 "next_table": 0,
                 "next_table_full": 97,
                 "vliw_instruction": 0,
@@ -45511,7 +45295,7 @@
     {
       "direction": "ingress",
       "handle": 16777232,
-      "name": "filtering.ingress_port_vlan",
+      "name": "tbl_spgw_ingress_gtpu_decap",
       "table_type": "match",
       "size": 512,
       "match_attributes": {
@@ -45524,6 +45308,720 @@
             "has_attached_gateway": true,
             "pack_format": [
               {
+                "table_word_width": 0,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [], "vpns": [] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 2,
+            "result_physical_buses": [],
+            "ternary_indirection_stage_table": {
+              "stage_number": 6,
+              "stage_table_type": "ternary_indirection",
+              "size": 512,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 16,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 15,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 120,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 127,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 14,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 112,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 113,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 13,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 104,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 111,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 12,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 103,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 11,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 88,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 95,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 10,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 80,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 81,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 9,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 72,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 79,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 8,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 71,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 7,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 56,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 57,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 63,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 6,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 49,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 5,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 40,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 41,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 47,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 4,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 39,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 24,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 25,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 31,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 17,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 8,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 9,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 15,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 7,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "spgw_ingress.gtpu_decap",
+                  "action_handle": 536870931,
+                  "table_name": "filtering_ingress_port_vlan",
+                  "next_table": 0,
+                  "next_table_full": 98,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 4,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 5,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 3,
+                      "dest_width": 1
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "spgw_ingress.gtpu_decap",
+          "handle": 536870931,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "W12" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "W12" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870931,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777233,
+      "name": "filtering.ingress_port_vlan",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
                 "table_word_width": 47,
                 "memory_word_width": 47,
                 "entries_per_table_word": 1,
@@ -45560,31 +46058,49 @@
                         "field_width": 2
                       },
                       {
-                        "field_name": "ig_intr_md.ingress_port",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 9
-                      },
-                      {
-                        "field_name": "vlan_tag.vlan_id",
-                        "lsb_mem_word_offset": 17,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 12
-                      },
-                      {
                         "field_name": "vlan_tag",
-                        "lsb_mem_word_offset": 36,
+                        "lsb_mem_word_offset": 4,
                         "lsb_mem_word_idx": 0,
                         "msb_mem_word_idx": 0,
                         "source": "spec",
                         "start_bit": 0,
                         "field_width": 1
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
                       }
                     ]
                   }
@@ -45596,7 +46112,7 @@
               "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
               "spare_bank_memory_unit": 0
             },
-            "default_next_table": 2,
+            "default_next_table": 3,
             "result_physical_buses": [ 0 ],
             "ternary_indirection_stage_table": {
               "stage_number": 6,
@@ -45625,7 +46141,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45635,12 +46151,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 120,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 115,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45660,7 +46176,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45670,12 +46186,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 88,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 83,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45695,7 +46211,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45705,12 +46221,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 56,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 51,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45730,7 +46246,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45740,12 +46256,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 24,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 19,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     }
@@ -45760,40 +46276,24 @@
               "action_format": [
                 {
                   "action_name": "nop",
-                  "action_handle": 536870933,
+                  "action_handle": 536870934,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 0,
                   "vliw_instruction_full": 64,
                   "immediate_fields": []
                 },
                 {
                   "action_name": "filtering.push_internal_vlan",
-                  "action_handle": 536870931,
+                  "action_handle": 536870932,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 65,
+                  "vliw_instruction_full": 66,
                   "immediate_fields": [
                     {
-                      "param_name": "constant_1",
-                      "param_type": "constant",
-                      "const_value": 1,
-                      "param_shift": 0,
-                      "dest_start": 19,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_1",
-                      "param_type": "constant",
-                      "const_value": 1,
-                      "param_shift": 0,
-                      "dest_start": 20,
-                      "dest_width": 1
-                    },
-                    {
                       "param_name": "constant_0",
                       "param_type": "constant",
                       "const_value": 0,
@@ -45820,12 +46320,12 @@
                 },
                 {
                   "action_name": "filtering.set_vlan",
-                  "action_handle": 536870932,
+                  "action_handle": 536870933,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 2,
-                  "vliw_instruction_full": 66,
+                  "vliw_instruction_full": 68,
                   "immediate_fields": [
                     {
                       "param_name": "new_vlan_id",
@@ -45838,10 +46338,10 @@
                 },
                 {
                   "action_name": "filtering.drop",
-                  "action_handle": 536870934,
+                  "action_handle": 536870935,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 3,
                   "vliw_instruction_full": 67,
                   "immediate_fields": []
@@ -45866,7 +46366,7 @@
       "actions": [
         {
           "name": "nop",
-          "handle": 536870933,
+          "handle": 536870934,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45885,7 +46385,7 @@
         },
         {
           "name": "filtering.push_internal_vlan",
-          "handle": 536870931,
+          "handle": 536870932,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45910,6 +46410,14 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "W13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
               "src": [ { "type": "phv", "name": "H10" } ]
             },
@@ -45920,10 +46428,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B15" },
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
-                { "type": "immediate", "name": "$data1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -45935,7 +46443,7 @@
         },
         {
           "name": "filtering.set_vlan",
-          "handle": 536870932,
+          "handle": 536870933,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45970,7 +46478,7 @@
         },
         {
           "name": "filtering.drop",
-          "handle": 536870934,
+          "handle": 536870935,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45997,7 +46505,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870933,
+      "default_action_handle": 536870934,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -46050,7 +46558,7 @@
           "stage_number": 6,
           "size": 2048,
           "stage_table_type": "statistics",
-          "logical_table_id": 1,
+          "logical_table_id": 2,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -46079,7 +46587,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777233,
+      "handle": 16777234,
       "name": "filtering.fwd_classifier",
       "table_type": "match",
       "size": 3072,
@@ -46094,7 +46602,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870935,
+      "default_action_handle": 536870936,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -46141,7 +46649,7 @@
             "stage_number": 6,
             "size": 3072,
             "stage_table_type": "hash_match",
-            "logical_table_id": 2,
+            "logical_table_id": 3,
             "has_attached_gateway": false,
             "hash_functions": [
               {
@@ -48300,18 +48808,18 @@
             "action_format": [
               {
                 "action_name": "filtering.set_forwarding_type",
-                "action_handle": 536870935,
+                "action_handle": 536870936,
                 "table_name": "tbl_act_23",
                 "next_table": 0,
-                "next_table_full": 99,
+                "next_table_full": 100,
                 "vliw_instruction": 0,
-                "vliw_instruction_full": 68,
+                "vliw_instruction_full": 69,
                 "immediate_fields": [
                   {
                     "param_name": "fwd_type",
                     "param_type": "parameter",
                     "param_shift": 0,
-                    "dest_start": 2,
+                    "dest_start": 1,
                     "dest_width": 3
                   }
                 ]
@@ -48346,7 +48854,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48361,7 +48869,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48464,17 +48972,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48486,23 +48983,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48539,7 +49025,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48554,7 +49040,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48657,17 +49143,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48679,23 +49154,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48732,7 +49196,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48747,7 +49211,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48850,17 +49314,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48872,23 +49325,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48916,7 +49358,7 @@
       "actions": [
         {
           "name": "filtering.set_forwarding_type",
-          "handle": 536870935,
+          "handle": 536870936,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [
@@ -48962,7 +49404,7 @@
           "stage_number": 6,
           "size": 4096,
           "stage_table_type": "statistics",
-          "logical_table_id": 2,
+          "logical_table_id": 3,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -48992,7 +49434,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777234,
+      "handle": 16777235,
       "name": "tbl_act_9",
       "table_type": "match",
       "size": 512,
@@ -49003,7 +49445,7 @@
             "stage_number": 6,
             "size": 1,
             "stage_table_type": "match_with_no_key",
-            "logical_table_id": 3,
+            "logical_table_id": 4,
             "has_attached_gateway": true,
             "memory_resource_allocation": null,
             "default_next_table": 255,
@@ -49019,7 +49461,7 @@
             "action_format": [
               {
                 "action_name": "act_9",
-                "action_handle": 536870936,
+                "action_handle": 536870937,
                 "table_name": "forwarding_bridging",
                 "next_table": 0,
                 "next_table_full": 112,
@@ -49037,7 +49479,7 @@
       "actions": [
         {
           "name": "act_9",
-          "handle": 536870936,
+          "handle": 536870937,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49055,7 +49497,7 @@
           "primitives": []
         }
       ],
-      "default_action_handle": 536870936,
+      "default_action_handle": 536870937,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49086,7 +49528,7 @@
           "stage_number": 6,
           "size": 2048,
           "stage_table_type": "statistics",
-          "logical_table_id": 3,
+          "logical_table_id": 4,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -49115,7 +49557,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777235,
+      "handle": 16777236,
       "name": "forwarding.bridging",
       "table_type": "match",
       "size": 512,
@@ -49331,7 +49773,7 @@
               "action_format": [
                 {
                   "action_name": "NoAction",
-                  "action_handle": 536870938,
+                  "action_handle": 536870939,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -49341,7 +49783,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870937,
+                  "action_handle": 536870938,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -49377,7 +49819,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870938,
+          "handle": 536870939,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49396,7 +49838,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870937,
+          "handle": 536870938,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49427,7 +49869,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870938,
+      "default_action_handle": 536870939,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49498,7 +49940,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777236,
+      "handle": 16777237,
       "name": "forwarding.mpls",
       "table_type": "match",
       "size": 3072,
@@ -49513,7 +49955,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870940,
+      "default_action_handle": 536870941,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49926,7 +50368,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870940,
+                "action_handle": 536870941,
                 "table_name": "tbl_act_20",
                 "next_table": 0,
                 "next_table_full": 114,
@@ -49936,7 +50378,7 @@
               },
               {
                 "action_name": "forwarding.pop_mpls_and_next",
-                "action_handle": 536870939,
+                "action_handle": 536870940,
                 "table_name": "tbl_act_20",
                 "next_table": 0,
                 "next_table_full": 114,
@@ -50336,7 +50778,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870940,
+          "handle": 536870941,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [],
@@ -50354,7 +50796,7 @@
         },
         {
           "name": "forwarding.pop_mpls_and_next",
-          "handle": 536870939,
+          "handle": 536870940,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [
@@ -50381,7 +50823,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -50434,7 +50876,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777237,
+      "handle": 16777238,
       "name": "tbl_act_6",
       "table_type": "match",
       "size": 512,
@@ -50624,7 +51066,7 @@
               "action_format": [
                 {
                   "action_name": "act_6",
-                  "action_handle": 536870941,
+                  "action_handle": 536870942,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50655,7 +51097,7 @@
       "actions": [
         {
           "name": "act_6",
-          "handle": 536870941,
+          "handle": 536870942,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50687,7 +51129,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870941,
+      "default_action_handle": 536870942,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -50697,7 +51139,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777238,
+      "handle": 16777239,
       "name": "forwarding.unicast_v4",
       "table_type": "match",
       "size": 512,
@@ -50868,7 +51310,7 @@
               "action_format": [
                 {
                   "action_name": "NoAction",
-                  "action_handle": 536870943,
+                  "action_handle": 536870944,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50878,7 +51320,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870942,
+                  "action_handle": 536870943,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50914,7 +51356,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870943,
+          "handle": 536870944,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50933,7 +51375,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870942,
+          "handle": 536870943,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50964,7 +51406,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870943,
+      "default_action_handle": 536870944,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -51024,7 +51466,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777239,
+      "handle": 16777240,
       "name": "forwarding.acl",
       "table_type": "match",
       "size": 256,
@@ -51510,7 +51952,7 @@
               "action_format": [
                 {
                   "action_name": "nop",
-                  "action_handle": 536870947,
+                  "action_handle": 536870948,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51520,7 +51962,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870944,
+                  "action_handle": 536870945,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51538,7 +51980,7 @@
                 },
                 {
                   "action_name": "forwarding.duplicate_to_controller",
-                  "action_handle": 536870945,
+                  "action_handle": 536870946,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51557,7 +51999,7 @@
                 },
                 {
                   "action_name": "forwarding.drop",
-                  "action_handle": 536870946,
+                  "action_handle": 536870947,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51585,7 +52027,7 @@
       "actions": [
         {
           "name": "nop",
-          "handle": 536870947,
+          "handle": 536870948,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51604,7 +52046,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870944,
+          "handle": 536870945,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51636,7 +52078,7 @@
         },
         {
           "name": "forwarding.duplicate_to_controller",
-          "handle": 536870945,
+          "handle": 536870946,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51664,7 +52106,7 @@
         },
         {
           "name": "forwarding.drop",
-          "handle": 536870946,
+          "handle": 536870947,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51691,7 +52133,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870947,
+      "default_action_handle": 536870948,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -51872,7 +52314,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777240,
+      "handle": 16777241,
       "name": "next.simple",
       "table_type": "match",
       "size": 3072,
@@ -51893,7 +52335,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870952,
+      "default_action_handle": 536870953,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -53609,7 +54051,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870952,
+                "action_handle": 536870953,
                 "table_name": "next_hashed",
                 "next_table": 0,
                 "next_table_full": 162,
@@ -53619,7 +54061,7 @@
               },
               {
                 "action_name": "next.output",
-                "action_handle": 536870948,
+                "action_handle": 536870949,
                 "table_name": "next_hashed",
                 "next_table": 1,
                 "next_table_full": 162,
@@ -53629,7 +54071,7 @@
               },
               {
                 "action_name": "next.set_vlan_output",
-                "action_handle": 536870949,
+                "action_handle": 536870950,
                 "table_name": "next_hashed",
                 "next_table": 2,
                 "next_table_full": 162,
@@ -53639,7 +54081,7 @@
               },
               {
                 "action_name": "next.l3_routing",
-                "action_handle": 536870950,
+                "action_handle": 536870951,
                 "table_name": "next_hashed",
                 "next_table": 3,
                 "next_table_full": 162,
@@ -53649,7 +54091,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v4",
-                "action_handle": 536870951,
+                "action_handle": 536870952,
                 "table_name": "next_hashed",
                 "next_table": 4,
                 "next_table_full": 162,
@@ -54101,7 +54543,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870952,
+          "handle": 536870953,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54119,7 +54561,7 @@
         },
         {
           "name": "next.output",
-          "handle": 536870948,
+          "handle": 536870949,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54153,7 +54595,7 @@
         },
         {
           "name": "next.set_vlan_output",
-          "handle": 536870949,
+          "handle": 536870950,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54194,7 +54636,7 @@
               "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -54209,7 +54651,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870950,
+          "handle": 536870951,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54265,7 +54707,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870951,
+          "handle": 536870952,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54308,7 +54750,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -54428,7 +54870,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870952
+              "action_handle": 536870953
             },
             {
               "memory_word_width": 128,
@@ -54469,7 +54911,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870948
+              "action_handle": 536870949
             },
             {
               "memory_word_width": 128,
@@ -54528,7 +54970,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870949
+              "action_handle": 536870950
             },
             {
               "memory_word_width": 128,
@@ -54605,7 +55047,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870950
+              "action_handle": 536870951
             },
             {
               "memory_word_width": 128,
@@ -54682,7 +55124,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870951
+              "action_handle": 536870952
             }
           ],
           "memory_resource_allocation": {
@@ -54699,7 +55141,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870952,
+          "handle": 536870953,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54717,7 +55159,7 @@
         },
         {
           "name": "next.output",
-          "handle": 536870948,
+          "handle": 536870949,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54751,7 +55193,7 @@
         },
         {
           "name": "next.set_vlan_output",
-          "handle": 536870949,
+          "handle": 536870950,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54792,7 +55234,7 @@
               "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -54807,7 +55249,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870950,
+          "handle": 536870951,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54863,7 +55305,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870951,
+          "handle": 536870952,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54906,7 +55348,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -54956,7 +55398,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777241,
+      "handle": 16777242,
       "name": "tbl_act_7",
       "table_type": "match",
       "size": 1,
@@ -54983,7 +55425,7 @@
             "action_format": [
               {
                 "action_name": "act_7",
-                "action_handle": 536870953,
+                "action_handle": 536870954,
                 "table_name": "next_hashed",
                 "next_table": 0,
                 "next_table_full": 162,
@@ -55001,7 +55443,7 @@
       "actions": [
         {
           "name": "act_7",
-          "handle": 536870953,
+          "handle": 536870954,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -55029,7 +55471,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870953,
+      "default_action_handle": 536870954,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -55045,7 +55487,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777242,
+      "handle": 16777243,
       "name": "next.hashed",
       "table_type": "match",
       "size": 3072,
@@ -55074,7 +55516,7 @@
       "stateful_table_refs": [],
       "default_selector_mask": 0,
       "default_selector_value": 0,
-      "default_action_handle": 536870957,
+      "default_action_handle": 536870958,
       "action_profile": "next.ecmp_selector",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -55125,23 +55567,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55149,11 +55575,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55175,22 +55621,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55199,11 +55629,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55229,35 +55679,35 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 17,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55287,38 +55737,10 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55331,11 +55753,39 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55357,31 +55807,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55389,12 +55815,36 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -55419,6 +55869,22 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 26,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55431,23 +55897,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 3,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55469,27 +55919,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55505,11 +55935,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55527,6 +55977,26 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55543,27 +56013,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 21,
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55585,27 +56035,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55613,7 +56047,19 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55631,28 +56077,24 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 21,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -55681,7 +56123,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55689,7 +56151,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 26,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55705,23 +56167,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 21,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 0,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55751,23 +56197,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55775,7 +56205,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55793,31 +56243,15 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55825,11 +56259,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55851,22 +56301,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55875,15 +56309,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 19,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55905,26 +56355,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55937,11 +56367,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55967,27 +56417,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 3,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55999,7 +56433,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56013,23 +56463,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56041,7 +56475,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56067,19 +56517,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56087,19 +56549,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 22,
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56117,35 +56567,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56153,8 +56575,32 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -56175,35 +56621,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56229,31 +56671,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56261,12 +56679,40 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -56291,15 +56737,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56307,11 +56745,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56333,19 +56783,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56353,19 +56815,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 22,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56387,31 +56837,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 27,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56437,31 +56887,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56471,23 +56901,9 @@
                       {
                         "field_bit": 21,
                         "field_name": "fabric_metadata.next_id"
-                      }
-                    ]
-                  },
-                  {
-                    "hash_bit": 25,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      {
-                        "field_bit": 11,
-                        "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56503,7 +56919,17 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 3,
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56515,7 +56941,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 19,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56523,7 +56949,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56545,18 +56995,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -56565,15 +57003,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56591,31 +57041,15 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56623,7 +57057,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56641,31 +57091,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56687,19 +57133,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56707,15 +57145,19 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 27,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 28,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56726,7 +57168,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870957,
+                "action_handle": 536870958,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56736,7 +57178,7 @@
               },
               {
                 "action_name": "next.l3_routing",
-                "action_handle": 536870954,
+                "action_handle": 536870955,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56746,7 +57188,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v4",
-                "action_handle": 536870955,
+                "action_handle": 536870956,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56756,7 +57198,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v6",
-                "action_handle": 536870956,
+                "action_handle": 536870957,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -57217,7 +57659,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870957,
+          "handle": 536870958,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57235,7 +57677,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870954,
+          "handle": 536870955,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57291,7 +57733,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870955,
+          "handle": 536870956,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57334,7 +57776,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -57381,7 +57823,7 @@
         },
         {
           "name": "next.mpls_routing_v6",
-          "handle": 536870956,
+          "handle": 536870957,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57424,7 +57866,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -57538,7 +57980,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870957
+              "action_handle": 536870958
             },
             {
               "memory_word_width": 128,
@@ -57624,130 +58066,6 @@
                   ]
                 }
               ],
-              "action_handle": 536870954
-            },
-            {
-              "memory_word_width": 128,
-              "table_word_width": 256,
-              "entries_per_table_word": 1,
-              "number_memory_units_per_table_word": 2,
-              "entries": [
-                {
-                  "entry_number": 0,
-                  "fields": [
-                    {
-                      "start_bit": 0,
-                      "field_width": 3,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "constant",
-                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 3 } ],
-                      "lsb_mem_word_offset": 1,
-                      "field_name": "$constant0"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 1,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "constant",
-                      "const_tuples": [ { "dest_start": 0, "value": 1, "dest_width": 1 } ],
-                      "lsb_mem_word_offset": 0,
-                      "field_name": "$constant1"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 4,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 4,
-                      "field_name": "label"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 9,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 32,
-                      "field_name": "port_num"
-                    },
-                    {
-                      "start_bit": 4,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 48,
-                      "field_name": "label"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 64,
-                      "field_name": "dmac"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 80,
-                      "field_name": "smac"
-                    },
-                    {
-                      "start_bit": 16,
-                      "field_width": 32,
-                      "lsb_mem_word_idx": 1,
-                      "msb_mem_word_idx": 1,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 64,
-                      "field_name": "dmac"
-                    },
-                    {
-                      "start_bit": 16,
-                      "field_width": 32,
-                      "lsb_mem_word_idx": 1,
-                      "msb_mem_word_idx": 1,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 96,
-                      "field_name": "smac"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 24,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 8,
-                      "field_name": "--padding_8_31--"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 7,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 41,
-                      "field_name": "--padding_41_47--"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 96,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 1,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 96,
-                      "field_name": "--padding_96_191--"
-                    }
-                  ]
-                }
-              ],
               "action_handle": 536870955
             },
             {
@@ -57873,6 +58191,130 @@
                 }
               ],
               "action_handle": 536870956
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 256,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 2,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 3 } ],
+                      "lsb_mem_word_offset": 1,
+                      "field_name": "$constant0"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 1,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 1, "dest_width": 1 } ],
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "$constant1"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 4,
+                      "field_name": "label"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 4,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "label"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 1,
+                      "msb_mem_word_idx": 1,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 1,
+                      "msb_mem_word_idx": 1,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 24,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 8,
+                      "field_name": "--padding_8_31--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 41,
+                      "field_name": "--padding_41_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 96,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_96_191--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870957
             }
           ],
           "memory_resource_allocation": {
@@ -57885,7 +58327,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870957,
+          "handle": 536870958,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57903,7 +58345,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870954,
+          "handle": 536870955,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57959,7 +58401,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870955,
+          "handle": 536870956,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58002,7 +58444,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -58049,7 +58491,7 @@
         },
         {
           "name": "next.mpls_routing_v6",
-          "handle": 536870956,
+          "handle": 536870957,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58092,7 +58534,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -58181,7 +58623,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777243,
+      "handle": 16777244,
       "name": "tbl_act_10",
       "table_type": "match",
       "size": 1,
@@ -58208,7 +58650,7 @@
             "action_format": [
               {
                 "action_name": "act_10",
-                "action_handle": 536870958,
+                "action_handle": 536870959,
                 "table_name": "tbl_act_22",
                 "next_table": 0,
                 "next_table_full": 177,
@@ -58226,7 +58668,7 @@
       "actions": [
         {
           "name": "act_10",
-          "handle": 536870958,
+          "handle": 536870959,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58252,13 +58694,13 @@
               "dest": { "type": "phv", "name": "vlan_tag.$valid" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             }
           ]
         }
       ],
-      "default_action_handle": 536870958,
+      "default_action_handle": 536870959,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -58274,7 +58716,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777244,
+      "handle": 16777245,
       "name": "tbl_act_8",
       "table_type": "match",
       "size": 512,
@@ -58301,7 +58743,7 @@
             "action_format": [
               {
                 "action_name": "act_8",
-                "action_handle": 536870959,
+                "action_handle": 536870960,
                 "table_name": "--END_OF_PIPELINE--",
                 "next_table": 0,
                 "next_table_full": 255,
@@ -58319,7 +58761,7 @@
       "actions": [
         {
           "name": "act_8",
-          "handle": 536870959,
+          "handle": 536870960,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58337,7 +58779,7 @@
           "primitives": []
         }
       ],
-      "default_action_handle": 536870959,
+      "default_action_handle": 536870960,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -58430,32 +58872,32 @@
     {
       "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
       "name": "stage_1_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "000000000000002000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
       "name": "stage_2_match_input_xbar_din_power_ctl",
-      "value": "0000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
-    },
-    {
-      "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
-      "name": "stage_2_parity_group_mask",
-      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001000000010000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
       "name": "stage_3_match_input_xbar_din_power_ctl",
-      "value": "0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
       "name": "stage_4_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
       "name": "stage_5_match_input_xbar_din_power_ctl",
-      "value": "0000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[5].dp.xbar_hash.hash.parity_group_mask",
@@ -58465,17 +58907,17 @@
     {
       "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
       "name": "stage_6_match_input_xbar_din_power_ctl",
-      "value": "0000001800000008000000000000000000000000000000a00000000000000000000000440000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000005000000028000000000000000000000000000000400000000000000000000000440000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_6_parity_group_mask",
-      "value": "00000001000000000000000c00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "00000001000000000000000c00000000000000020000000000000008000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
       "name": "stage_7_match_input_xbar_din_power_ctl",
-      "value": "0000001800000000000000000000000000000040000000200000000000000000000000240000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000005000000000000000000000000000000040000000200000000000000000000000240000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
@@ -58485,7 +58927,7 @@
     {
       "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
       "name": "stage_8_match_input_xbar_din_power_ctl",
-      "value": "0000003a0000000c000000000000000000000024000000400000000000000000000000c4000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "000000d20000000c000000000000000000000024000000800000000000000000000000c4000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[9].dp.match_input_xbar_din_power_ctl",
@@ -58500,17 +58942,17 @@
     {
       "fully_qualified_name": "mau[10].dp.match_input_xbar_din_power_ctl",
       "name": "stage_10_match_input_xbar_din_power_ctl",
-      "value": "0000000a00000006000000000000000000000000000000c00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001200000036000000000000000000000000000000800000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[10].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_10_parity_group_mask",
-      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "00000003000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[11].dp.match_input_xbar_din_power_ctl",
       "name": "stage_11_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000000000000000000000000000000000000000000000400000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[11].dp.xbar_hash.hash.parity_group_mask",
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info
index b47cabe..8e9a4eb 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/fabric.p4info
@@ -23,7 +23,7 @@
   }
   match_fields {
     id: 1
-    name: "ipv4.dst_addr"
+    name: "spgw_meta.s1u_sgw_addr"
     bitwidth: 32
     match_type: EXACT
   }
@@ -395,6 +395,13 @@
 }
 actions {
   preamble {
+    id: 16808035
+    name: "spgw_ingress.gtpu_decap"
+    alias: "gtpu_decap"
+  }
+}
+actions {
+  preamble {
     id: 16784665
     name: "spgw_ingress.set_dl_sess_info"
     alias: "set_dl_sess_info"
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/tofino.bin
index a152ac7..f08f3d5 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/tofino.bin
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/mavericks/tofino.bin
Binary files differ
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/context.json
similarity index 95%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/context.json
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/context.json
index 7a3d948..d6ed5b1 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/context.json
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "02/04/18 01:26:51",
+  "build_date": "02/11/18 20:59:18",
   "compiler_version": "6.0.0-alpha.4",
   "program_name": "main",
   "learn_quanta": [],
@@ -46,6 +46,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -60,7 +77,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -77,7 +94,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -94,7 +128,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -111,45 +145,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -191,25 +191,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -227,25 +208,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -377,6 +339,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -509,7 +591,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -520,7 +602,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -531,7 +613,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -633,7 +715,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -655,29 +737,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -689,12 +760,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -706,102 +810,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -827,7 +844,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -855,7 +872,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -866,7 +883,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -877,7 +894,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -911,7 +928,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -928,7 +945,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -1052,7 +1069,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1154,7 +1171,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1188,7 +1205,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1222,7 +1239,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1273,7 +1290,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1301,7 +1318,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1480,7 +1497,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1508,7 +1525,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1519,7 +1536,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1530,7 +1547,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1541,7 +1558,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1580,7 +1597,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1619,7 +1636,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1636,7 +1653,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1653,7 +1670,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -1689,7 +1706,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1723,7 +1740,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1757,7 +1774,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -1959,12 +1976,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -1976,6 +1993,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -2093,7 +2127,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -2165,7 +2199,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -2184,7 +2218,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -2203,7 +2237,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -2510,7 +2544,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -2538,7 +2572,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -2757,7 +2791,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2768,7 +2802,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2779,7 +2813,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2807,7 +2841,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2846,7 +2880,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2891,7 +2925,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2902,7 +2936,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2913,7 +2947,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -2924,7 +2958,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3031,7 +3065,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3065,7 +3099,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3093,7 +3127,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3110,7 +3144,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3127,7 +3161,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3144,7 +3178,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3161,7 +3195,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3178,7 +3212,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -3234,6 +3268,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -3248,7 +3299,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -3265,7 +3316,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -3282,7 +3350,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -3299,45 +3367,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -3379,25 +3413,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -3415,25 +3430,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -3565,6 +3561,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -3697,7 +3813,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -3708,7 +3824,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3719,7 +3835,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3821,7 +3937,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -3843,29 +3959,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -3877,12 +3982,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -3894,102 +4032,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -4015,7 +4066,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4043,7 +4094,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4054,7 +4105,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4065,7 +4116,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4099,7 +4150,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4116,7 +4167,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -4240,7 +4291,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4342,7 +4393,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4376,7 +4427,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4410,7 +4461,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4461,7 +4512,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4489,7 +4540,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4668,7 +4719,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4696,7 +4747,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4707,7 +4758,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4718,7 +4769,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4729,7 +4780,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4768,7 +4819,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4807,7 +4858,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4824,7 +4875,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4841,7 +4892,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -4877,7 +4928,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4911,7 +4962,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -4945,7 +4996,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5147,12 +5198,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -5164,6 +5215,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -5281,7 +5349,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -5353,7 +5421,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -5372,7 +5440,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -5391,7 +5459,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -5698,7 +5766,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5726,7 +5794,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -5945,7 +6013,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5956,7 +6024,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5967,7 +6035,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -5995,7 +6063,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6034,7 +6102,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6079,7 +6147,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6090,7 +6158,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6101,7 +6169,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6112,7 +6180,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6219,7 +6287,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6253,7 +6321,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6281,7 +6349,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6298,7 +6366,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6315,7 +6383,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6332,7 +6400,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6349,7 +6417,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6366,7 +6434,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -6422,6 +6490,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -6436,7 +6521,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -6453,7 +6538,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -6470,7 +6572,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -6487,45 +6589,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -6567,25 +6635,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -6603,25 +6652,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -6753,6 +6783,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -6885,7 +7035,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -6896,7 +7046,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -6907,7 +7057,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -7009,7 +7159,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -7031,29 +7181,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -7065,12 +7204,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -7082,102 +7254,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -7203,7 +7288,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7231,7 +7316,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7242,7 +7327,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7253,7 +7338,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7287,7 +7372,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7304,7 +7389,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -7428,7 +7513,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7530,7 +7615,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7564,7 +7649,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7598,7 +7683,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7649,7 +7734,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -7677,7 +7762,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -7856,7 +7941,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7884,7 +7969,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7895,7 +7980,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7906,7 +7991,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7917,7 +8002,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7956,7 +8041,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -7995,7 +8080,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8012,7 +8097,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8029,7 +8114,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -8065,7 +8150,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8099,7 +8184,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8133,7 +8218,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8335,12 +8420,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -8352,6 +8437,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -8469,7 +8571,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -8541,7 +8643,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -8560,7 +8662,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -8579,7 +8681,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -8886,7 +8988,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -8914,7 +9016,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -9133,7 +9235,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9144,7 +9246,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9155,7 +9257,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9183,7 +9285,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9222,7 +9324,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9267,7 +9369,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9278,7 +9380,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9289,7 +9391,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9300,7 +9402,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9407,7 +9509,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9441,7 +9543,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9469,7 +9571,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9486,7 +9588,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9503,7 +9605,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9520,7 +9622,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9537,7 +9639,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9554,7 +9656,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -9610,6 +9712,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -9624,7 +9743,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -9641,7 +9760,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -9658,7 +9794,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -9675,45 +9811,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -9755,25 +9857,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -9791,25 +9874,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -9941,6 +10005,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -10073,7 +10257,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -10084,7 +10268,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10095,7 +10279,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10197,7 +10381,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -10219,29 +10403,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -10253,12 +10426,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -10270,102 +10476,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -10391,7 +10510,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10419,7 +10538,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10430,7 +10549,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10441,7 +10560,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10475,7 +10594,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10492,7 +10611,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -10616,7 +10735,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10718,7 +10837,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10752,7 +10871,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10786,7 +10905,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -10837,7 +10956,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -10865,7 +10984,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11044,7 +11163,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11072,7 +11191,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11083,7 +11202,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11094,7 +11213,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11105,7 +11224,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11144,7 +11263,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11183,7 +11302,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11200,7 +11319,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11217,7 +11336,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -11253,7 +11372,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11287,7 +11406,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11321,7 +11440,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -11523,12 +11642,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -11540,6 +11659,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -11657,7 +11793,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -11729,7 +11865,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -11748,7 +11884,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -11767,7 +11903,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -12074,7 +12210,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -12102,7 +12238,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -12321,7 +12457,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12332,7 +12468,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12343,7 +12479,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12371,7 +12507,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12410,7 +12546,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12455,7 +12591,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12466,7 +12602,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12477,7 +12613,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12488,7 +12624,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12595,7 +12731,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12629,7 +12765,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12657,7 +12793,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12674,7 +12810,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12691,7 +12827,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12708,7 +12844,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12725,7 +12861,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12742,7 +12878,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -12798,6 +12934,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -12812,7 +12965,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -12829,7 +12982,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -12846,7 +13016,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -12863,45 +13033,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -12943,25 +13079,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -12979,25 +13096,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -13129,6 +13227,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -13261,7 +13479,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -13272,7 +13490,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13283,7 +13501,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13385,7 +13603,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -13407,29 +13625,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -13441,12 +13648,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -13458,102 +13698,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -13579,7 +13732,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13607,7 +13760,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13618,7 +13771,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13629,7 +13782,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13663,7 +13816,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13680,7 +13833,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -13804,7 +13957,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13906,7 +14059,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13940,7 +14093,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -13974,7 +14127,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14025,7 +14178,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14053,7 +14206,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14232,7 +14385,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14260,7 +14413,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14271,7 +14424,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14282,7 +14435,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14293,7 +14446,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14332,7 +14485,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14371,7 +14524,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14388,7 +14541,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14405,7 +14558,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -14441,7 +14594,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14475,7 +14628,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14509,7 +14662,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -14711,12 +14864,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -14728,6 +14881,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -14845,7 +15015,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -14917,7 +15087,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -14936,7 +15106,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -14955,7 +15125,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -15262,7 +15432,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -15290,7 +15460,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -15509,7 +15679,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15520,7 +15690,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15531,7 +15701,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15559,7 +15729,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15598,7 +15768,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15643,7 +15813,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15654,7 +15824,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15665,7 +15835,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15676,7 +15846,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15783,7 +15953,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15817,7 +15987,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15845,7 +16015,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15862,7 +16032,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15879,7 +16049,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15896,7 +16066,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15913,7 +16083,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15930,7 +16100,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -15986,6 +16156,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -16000,7 +16187,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -16017,7 +16204,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -16034,7 +16238,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -16051,45 +16255,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -16131,25 +16301,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -16167,25 +16318,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -16317,6 +16449,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -16449,7 +16701,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -16460,7 +16712,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16471,7 +16723,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16573,7 +16825,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -16595,29 +16847,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -16629,12 +16870,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -16646,102 +16920,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -16767,7 +16954,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16795,7 +16982,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16806,7 +16993,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16817,7 +17004,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16851,7 +17038,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -16868,7 +17055,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -16992,7 +17179,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17094,7 +17281,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17128,7 +17315,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17162,7 +17349,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17213,7 +17400,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17241,7 +17428,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17420,7 +17607,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17448,7 +17635,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17459,7 +17646,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17470,7 +17657,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17481,7 +17668,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17520,7 +17707,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17559,7 +17746,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17576,7 +17763,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17593,7 +17780,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -17629,7 +17816,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17663,7 +17850,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17697,7 +17884,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -17899,12 +18086,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -17916,6 +18103,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -18033,7 +18237,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -18105,7 +18309,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -18124,7 +18328,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -18143,7 +18347,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -18450,7 +18654,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -18478,7 +18682,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -18697,7 +18901,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18708,7 +18912,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18719,7 +18923,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18747,7 +18951,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18786,7 +18990,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18831,7 +19035,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18842,7 +19046,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18853,7 +19057,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18864,7 +19068,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -18971,7 +19175,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19005,7 +19209,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19033,7 +19237,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19050,7 +19254,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19067,7 +19271,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19084,7 +19288,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19101,7 +19305,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19118,7 +19322,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19174,6 +19378,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -19188,7 +19409,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -19205,7 +19426,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -19222,7 +19460,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -19239,45 +19477,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -19319,25 +19523,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -19355,25 +19540,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -19505,6 +19671,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -19637,7 +19923,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -19648,7 +19934,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19659,7 +19945,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19761,7 +20047,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -19783,29 +20069,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -19817,12 +20092,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -19834,102 +20142,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -19955,7 +20176,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19983,7 +20204,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -19994,7 +20215,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20005,7 +20226,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20039,7 +20260,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20056,7 +20277,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -20180,7 +20401,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20282,7 +20503,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20316,7 +20537,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20350,7 +20571,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20401,7 +20622,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20429,7 +20650,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20608,7 +20829,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20636,7 +20857,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20647,7 +20868,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20658,7 +20879,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20669,7 +20890,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20708,7 +20929,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20747,7 +20968,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20764,7 +20985,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20781,7 +21002,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -20817,7 +21038,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20851,7 +21072,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -20885,7 +21106,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21087,12 +21308,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -21104,6 +21325,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -21221,7 +21459,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -21293,7 +21531,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -21312,7 +21550,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -21331,7 +21569,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -21638,7 +21876,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21666,7 +21904,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -21885,7 +22123,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21896,7 +22134,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21907,7 +22145,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21935,7 +22173,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -21974,7 +22212,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22019,7 +22257,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22030,7 +22268,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22041,7 +22279,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22052,7 +22290,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22159,7 +22397,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22193,7 +22431,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22221,7 +22459,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22238,7 +22476,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22255,7 +22493,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22272,7 +22510,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22289,7 +22527,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22306,7 +22544,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -22362,6 +22600,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -22376,7 +22631,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -22393,7 +22648,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -22410,7 +22682,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -22427,45 +22699,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -22507,25 +22745,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -22543,25 +22762,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -22693,6 +22893,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -22825,7 +23145,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -22836,7 +23156,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22847,7 +23167,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22949,7 +23269,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -22971,29 +23291,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -23005,12 +23314,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -23022,102 +23364,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -23143,7 +23398,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23171,7 +23426,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23182,7 +23437,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23193,7 +23448,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23227,7 +23482,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23244,7 +23499,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -23368,7 +23623,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23470,7 +23725,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23504,7 +23759,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23538,7 +23793,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23589,7 +23844,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -23617,7 +23872,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -23796,7 +24051,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23824,7 +24079,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23835,7 +24090,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23846,7 +24101,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23857,7 +24112,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23896,7 +24151,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23935,7 +24190,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23952,7 +24207,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -23969,7 +24224,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -24005,7 +24260,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24039,7 +24294,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24073,7 +24328,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24275,12 +24530,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -24292,6 +24547,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -24409,7 +24681,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -24481,7 +24753,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -24500,7 +24772,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -24519,7 +24791,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -24826,7 +25098,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -24854,7 +25126,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -25073,7 +25345,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25084,7 +25356,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25095,7 +25367,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25123,7 +25395,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25162,7 +25434,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25207,7 +25479,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25218,7 +25490,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25229,7 +25501,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25240,7 +25512,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25347,7 +25619,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25381,7 +25653,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25409,7 +25681,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25426,7 +25698,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25443,7 +25715,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25460,7 +25732,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25477,7 +25749,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25494,7 +25766,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -25550,6 +25822,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -25564,7 +25853,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -25581,7 +25870,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -25598,7 +25904,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -25615,45 +25921,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -25695,25 +25967,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -25731,25 +25984,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -25881,6 +26115,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -26013,7 +26367,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -26024,7 +26378,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26035,7 +26389,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26137,7 +26491,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -26159,29 +26513,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -26193,12 +26536,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -26210,102 +26586,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -26331,7 +26620,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26359,7 +26648,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26370,7 +26659,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26381,7 +26670,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26415,7 +26704,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26432,7 +26721,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -26556,7 +26845,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26658,7 +26947,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26692,7 +26981,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26726,7 +27015,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -26777,7 +27066,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -26805,7 +27094,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -26984,7 +27273,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27012,7 +27301,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27023,7 +27312,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27034,7 +27323,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27045,7 +27334,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27084,7 +27373,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27123,7 +27412,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27140,7 +27429,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27157,7 +27446,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -27193,7 +27482,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27227,7 +27516,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27261,7 +27550,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -27463,12 +27752,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -27480,6 +27769,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -27597,7 +27903,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -27669,7 +27975,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -27688,7 +27994,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -27707,7 +28013,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -28014,7 +28320,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -28042,7 +28348,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -28261,7 +28567,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28272,7 +28578,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28283,7 +28589,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28311,7 +28617,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28350,7 +28656,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28395,7 +28701,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28406,7 +28712,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28417,7 +28723,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28428,7 +28734,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28535,7 +28841,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28569,7 +28875,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28597,7 +28903,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28614,7 +28920,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28631,7 +28937,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28648,7 +28954,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28665,7 +28971,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28682,7 +28988,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -28738,6 +29044,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -28752,7 +29075,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -28769,7 +29092,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -28786,7 +29126,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -28803,45 +29143,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -28883,25 +29189,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -28919,25 +29206,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -29069,6 +29337,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -29201,7 +29589,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -29212,7 +29600,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29223,7 +29611,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29325,7 +29713,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -29347,29 +29735,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -29381,12 +29758,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -29398,102 +29808,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -29519,7 +29842,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29547,7 +29870,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29558,7 +29881,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29569,7 +29892,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29603,7 +29926,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29620,7 +29943,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -29744,7 +30067,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29846,7 +30169,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29880,7 +30203,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29914,7 +30237,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -29965,7 +30288,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -29993,7 +30316,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30172,7 +30495,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30200,7 +30523,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30211,7 +30534,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30222,7 +30545,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30233,7 +30556,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30272,7 +30595,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30311,7 +30634,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30328,7 +30651,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30345,7 +30668,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -30381,7 +30704,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30415,7 +30738,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30449,7 +30772,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -30651,12 +30974,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -30668,6 +30991,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -30785,7 +31125,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -30857,7 +31197,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -30876,7 +31216,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -30895,7 +31235,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -31202,7 +31542,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -31230,7 +31570,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -31449,7 +31789,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31460,7 +31800,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31471,7 +31811,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31499,7 +31839,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31538,7 +31878,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31583,7 +31923,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31594,7 +31934,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31605,7 +31945,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31616,7 +31956,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31723,7 +32063,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31757,7 +32097,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31785,7 +32125,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31802,7 +32142,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31819,7 +32159,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31836,7 +32176,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31853,7 +32193,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31870,7 +32210,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -31926,6 +32266,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -31940,7 +32297,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -31957,7 +32314,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -31974,7 +32348,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -31991,45 +32365,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -32071,25 +32411,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -32107,25 +32428,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -32257,6 +32559,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -32389,7 +32811,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -32400,7 +32822,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32411,7 +32833,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32513,7 +32935,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -32535,29 +32957,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -32569,12 +32980,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -32586,102 +33030,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -32707,7 +33064,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32735,7 +33092,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32746,7 +33103,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32757,7 +33114,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32791,7 +33148,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -32808,7 +33165,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -32932,7 +33289,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33034,7 +33391,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33068,7 +33425,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33102,7 +33459,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33153,7 +33510,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33181,7 +33538,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33360,7 +33717,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33388,7 +33745,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33399,7 +33756,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33410,7 +33767,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33421,7 +33778,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33460,7 +33817,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33499,7 +33856,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33516,7 +33873,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33533,7 +33890,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -33569,7 +33926,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33603,7 +33960,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33637,7 +33994,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -33839,12 +34196,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -33856,6 +34213,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -33973,7 +34347,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -34045,7 +34419,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -34064,7 +34438,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -34083,7 +34457,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -34390,7 +34764,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -34418,7 +34792,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -34637,7 +35011,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34648,7 +35022,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34659,7 +35033,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34687,7 +35061,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34726,7 +35100,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34771,7 +35145,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34782,7 +35156,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34793,7 +35167,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34804,7 +35178,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34911,7 +35285,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34945,7 +35319,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34973,7 +35347,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -34990,7 +35364,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35007,7 +35381,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35024,7 +35398,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35041,7 +35415,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35058,7 +35432,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35114,6 +35488,23 @@
           "phv_number": 2,
           "records": [
             {
+              "position_offset": 175,
+              "field_name": "spgw.s1u_enb_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 3,
+          "records": [
+            {
               "position_offset": 74,
               "field_name": "gtpu_ipv4.dst_addr",
               "field_msb": 31,
@@ -35128,7 +35519,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 3,
+          "phv_number": 4,
           "records": [
             {
               "position_offset": 138,
@@ -35145,7 +35536,24 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 4,
+          "phv_number": 5,
+          "records": [
+            {
+              "position_offset": 179,
+              "field_name": "spgw.s1u_sgw_addr",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 4,
+              "phv_msb": 31,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 6,
           "records": [
             {
               "position_offset": 21,
@@ -35162,7 +35570,7 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 5,
+          "phv_number": 7,
           "records": [
             {
               "position_offset": 29,
@@ -35179,45 +35587,11 @@
           "word_bit_width": 32
         },
         {
-          "phv_number": 6,
-          "records": [
-            {
-              "position_offset": 176,
-              "field_name": "spgw.teid",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
-          "phv_number": 7,
-          "records": [
-            {
-              "position_offset": 168,
-              "field_name": "spgw.s1u_enb_addr",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 4,
-              "phv_msb": 31,
-              "phv_lsb": 0,
-              "is_compiler_generated": false,
-              "is_pov": false
-            }
-          ],
-          "word_bit_width": 32
-        },
-        {
           "phv_number": 8,
           "records": [
             {
-              "position_offset": 172,
-              "field_name": "spgw.s1u_sgw_addr",
+              "position_offset": 183,
+              "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
               "field_width": 4,
@@ -35259,25 +35633,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 133,
-                  "header_name": "ipv4",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -35295,25 +35650,6 @@
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 31,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 16,
-              "phv_lsb": 16,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 16,
-                  "position_offset": 208,
-                  "header_name": "udp",
-                  "hidden": false
-                }
-              ]
             }
           ],
           "word_bit_width": 32
@@ -35445,6 +35781,126 @@
                   "hidden": false
                 }
               ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 7,
+              "phv_lsb": 7,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 7,
+                  "position_offset": 133,
+                  "header_name": "ipv4",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 8,
+              "phv_lsb": 8,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 8,
+                  "position_offset": 218,
+                  "header_name": "udp",
+                  "hidden": false
+                }
+              ]
+            }
+          ],
+          "word_bit_width": 32
+        },
+        {
+          "phv_number": 13,
+          "records": [
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 0,
+                  "position_offset": 158,
+                  "header_name": "mpls",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 1,
+                  "position_offset": 167,
+                  "header_name": "packet_out",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 2,
+                  "position_offset": 188,
+                  "header_name": "tcp",
+                  "hidden": false
+                }
+              ]
+            },
+            {
+              "position_offset": 0,
+              "field_name": "POV",
+              "field_msb": 31,
+              "field_lsb": 0,
+              "field_width": 0,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": true,
+              "pov_headers": [
+                {
+                  "bit_index": 3,
+                  "position_offset": 230,
+                  "header_name": "vlan_tag",
+                  "hidden": false
+                }
+              ]
             }
           ],
           "word_bit_width": 32
@@ -35577,7 +36033,7 @@
           "phv_number": 70,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 3,
               "field_lsb": 0,
@@ -35588,7 +36044,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 162,
+              "position_offset": 165,
               "field_name": "mpls.tc",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35599,7 +36055,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 159,
+              "position_offset": 162,
               "field_name": "mpls.bos",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35701,7 +36157,7 @@
           "phv_number": 76,
           "records": [
             {
-              "position_offset": 163,
+              "position_offset": 166,
               "field_name": "mpls.ttl",
               "field_msb": 7,
               "field_lsb": 0,
@@ -35723,29 +36179,18 @@
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 2,
+              "phv_msb": 3,
+              "phv_lsb": 1,
               "is_compiler_generated": false,
               "is_pov": false
             },
             {
-              "position_offset": 106,
-              "field_name": "hasExited_0",
+              "position_offset": 174,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 167,
-              "field_name": "spgw.direction",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -35757,12 +36202,45 @@
           "phv_number": 78,
           "records": [
             {
-              "position_offset": 36,
-              "field_name": "fabric_metadata.ip_proto",
+              "position_offset": 51,
+              "field_name": "fabric_metadata.pop_vlan_at_egress",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 7,
+              "phv_msb": 1,
+              "phv_lsb": 1,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 106,
+              "field_name": "hasExited_0",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 2,
+              "phv_lsb": 2,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 187,
+              "field_name": "spgw_ingress_hasReturned",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 3,
+              "phv_lsb": 3,
+              "is_compiler_generated": false,
+              "is_pov": false
+            },
+            {
+              "position_offset": 173,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -35774,102 +36252,15 @@
           "phv_number": 79,
           "records": [
             {
-              "position_offset": 51,
-              "field_name": "fabric_metadata.pop_vlan_at_egress",
+              "position_offset": 36,
+              "field_name": "fabric_metadata.ip_proto",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 4,
-              "phv_lsb": 4,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 180,
-              "field_name": "spgw_ingress_hasReturned",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 1,
-              "phv_msb": 5,
-              "phv_lsb": 5,
-              "is_compiler_generated": false,
-              "is_pov": false
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 0,
+              "phv_msb": 7,
               "phv_lsb": 0,
               "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 0,
-                  "position_offset": 158,
-                  "header_name": "mpls",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 1,
-              "phv_lsb": 1,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 1,
-                  "position_offset": 164,
-                  "header_name": "packet_out",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 2,
-              "phv_lsb": 2,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 2,
-                  "position_offset": 181,
-                  "header_name": "tcp",
-                  "hidden": false
-                }
-              ]
-            },
-            {
-              "position_offset": 0,
-              "field_name": "POV",
-              "field_msb": 7,
-              "field_lsb": 0,
-              "field_width": 0,
-              "phv_msb": 3,
-              "phv_lsb": 3,
-              "is_compiler_generated": false,
-              "is_pov": true,
-              "pov_headers": [
-                {
-                  "bit_index": 3,
-                  "position_offset": 220,
-                  "header_name": "vlan_tag",
-                  "hidden": false
-                }
-              ]
+              "is_pov": false
             }
           ],
           "word_bit_width": 8
@@ -35895,7 +36286,7 @@
           "phv_number": 129,
           "records": [
             {
-              "position_offset": 165,
+              "position_offset": 171,
               "field_name": "packet_out.egress_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35923,7 +36314,7 @@
           "phv_number": 130,
           "records": [
             {
-              "position_offset": 225,
+              "position_offset": 238,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35934,7 +36325,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 221,
+              "position_offset": 234,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35945,7 +36336,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 227,
+              "position_offset": 240,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35979,7 +36370,7 @@
           "phv_number": 132,
           "records": [
             {
-              "position_offset": 218,
+              "position_offset": 228,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -35996,7 +36387,7 @@
           "phv_number": 133,
           "records": [
             {
-              "position_offset": 160,
+              "position_offset": 163,
               "field_name": "mpls.label",
               "field_msb": 19,
               "field_lsb": 4,
@@ -36120,7 +36511,7 @@
           "phv_number": 139,
           "records": [
             {
-              "position_offset": 223,
+              "position_offset": 236,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36222,7 +36613,7 @@
           "phv_number": 161,
           "records": [
             {
-              "position_offset": 214,
+              "position_offset": 224,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36256,7 +36647,7 @@
           "phv_number": 163,
           "records": [
             {
-              "position_offset": 216,
+              "position_offset": 226,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36290,7 +36681,7 @@
           "phv_number": 165,
           "records": [
             {
-              "position_offset": 212,
+              "position_offset": 222,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36341,7 +36732,7 @@
           "phv_number": 256,
           "records": [
             {
-              "position_offset": 198,
+              "position_offset": 208,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36369,7 +36760,7 @@
           "phv_number": 257,
           "records": [
             {
-              "position_offset": 182,
+              "position_offset": 192,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36548,7 +36939,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 202,
+              "position_offset": 212,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36576,7 +36967,7 @@
           "phv_number": 321,
           "records": [
             {
-              "position_offset": 190,
+              "position_offset": 200,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36587,7 +36978,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 196,
+              "position_offset": 206,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36598,7 +36989,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 194,
+              "position_offset": 204,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36609,7 +37000,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 188,
+              "position_offset": 198,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36648,7 +37039,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 204,
+              "position_offset": 214,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36687,7 +37078,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 206,
+              "position_offset": 216,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36704,7 +37095,7 @@
           "phv_number": 324,
           "records": [
             {
-              "position_offset": 192,
+              "position_offset": 202,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36721,7 +37112,7 @@
           "phv_number": 325,
           "records": [
             {
-              "position_offset": 186,
+              "position_offset": 196,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -36757,7 +37148,7 @@
           "phv_number": 16,
           "records": [
             {
-              "position_offset": 132,
+              "position_offset": 133,
               "field_name": "spgw.teid",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36791,7 +37182,7 @@
           "phv_number": 18,
           "records": [
             {
-              "position_offset": 128,
+              "position_offset": 129,
               "field_name": "spgw.s1u_sgw_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -36825,7 +37216,7 @@
           "phv_number": 20,
           "records": [
             {
-              "position_offset": 124,
+              "position_offset": 125,
               "field_name": "spgw.s1u_enb_addr",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37027,12 +37418,12 @@
           "phv_number": 86,
           "records": [
             {
-              "position_offset": 123,
-              "field_name": "spgw.direction",
+              "position_offset": 124,
+              "field_name": "spgw.do_spgw",
               "field_msb": 7,
               "field_lsb": 0,
               "field_width": 1,
-              "phv_msb": 1,
+              "phv_msb": 0,
               "phv_lsb": 0,
               "is_compiler_generated": false,
               "is_pov": false
@@ -37044,6 +37435,23 @@
           "phv_number": 87,
           "records": [
             {
+              "position_offset": 123,
+              "field_name": "spgw.direction",
+              "field_msb": 7,
+              "field_lsb": 0,
+              "field_width": 1,
+              "phv_msb": 0,
+              "phv_lsb": 0,
+              "is_compiler_generated": false,
+              "is_pov": false
+            }
+          ],
+          "word_bit_width": 8
+        },
+        {
+          "phv_number": 88,
+          "records": [
+            {
               "position_offset": 0,
               "field_name": "POV",
               "field_msb": 7,
@@ -37161,7 +37569,7 @@
           "word_bit_width": 8
         },
         {
-          "phv_number": 88,
+          "phv_number": 89,
           "records": [
             {
               "position_offset": 0,
@@ -37233,7 +37641,7 @@
               "pov_headers": [
                 {
                   "bit_index": 3,
-                  "position_offset": 136,
+                  "position_offset": 137,
                   "header_name": "tcp",
                   "hidden": false
                 }
@@ -37252,7 +37660,7 @@
               "pov_headers": [
                 {
                   "bit_index": 4,
-                  "position_offset": 163,
+                  "position_offset": 164,
                   "header_name": "udp",
                   "hidden": false
                 }
@@ -37271,7 +37679,7 @@
               "pov_headers": [
                 {
                   "bit_index": 5,
-                  "position_offset": 172,
+                  "position_offset": 173,
                   "header_name": "vlan_tag",
                   "hidden": false
                 }
@@ -37578,7 +37986,7 @@
           "phv_number": 264,
           "records": [
             {
-              "position_offset": 153,
+              "position_offset": 154,
               "field_name": "tcp.seq_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37606,7 +38014,7 @@
           "phv_number": 265,
           "records": [
             {
-              "position_offset": 137,
+              "position_offset": 138,
               "field_name": "tcp.ack_no",
               "field_msb": 31,
               "field_lsb": 0,
@@ -37825,7 +38233,7 @@
           "phv_number": 326,
           "records": [
             {
-              "position_offset": 177,
+              "position_offset": 178,
               "field_name": "vlan_tag.pri",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37836,7 +38244,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 173,
+              "position_offset": 174,
               "field_name": "vlan_tag.cfi",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37847,7 +38255,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 179,
+              "position_offset": 180,
               "field_name": "vlan_tag.vlan_id",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37875,7 +38283,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 157,
+              "position_offset": 158,
               "field_name": "tcp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37914,7 +38322,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 170,
+              "position_offset": 171,
               "field_name": "udp.src_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37959,7 +38367,7 @@
           "phv_number": 330,
           "records": [
             {
-              "position_offset": 145,
+              "position_offset": 146,
               "field_name": "tcp.data_offset",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37970,7 +38378,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 151,
+              "position_offset": 152,
               "field_name": "tcp.res",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37981,7 +38389,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 149,
+              "position_offset": 150,
               "field_name": "tcp.ecn",
               "field_msb": 15,
               "field_lsb": 0,
@@ -37992,7 +38400,7 @@
               "is_pov": false
             },
             {
-              "position_offset": 143,
+              "position_offset": 144,
               "field_name": "tcp.ctrl",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38099,7 +38507,7 @@
           "phv_number": 335,
           "records": [
             {
-              "position_offset": 175,
+              "position_offset": 176,
               "field_name": "vlan_tag.ether_type",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38133,7 +38541,7 @@
           "phv_number": 337,
           "records": [
             {
-              "position_offset": 147,
+              "position_offset": 148,
               "field_name": "tcp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38161,7 +38569,7 @@
           "phv_number": 344,
           "records": [
             {
-              "position_offset": 161,
+              "position_offset": 162,
               "field_name": "tcp.window",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38178,7 +38586,7 @@
           "phv_number": 345,
           "records": [
             {
-              "position_offset": 141,
+              "position_offset": 142,
               "field_name": "tcp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38195,7 +38603,7 @@
           "phv_number": 346,
           "records": [
             {
-              "position_offset": 159,
+              "position_offset": 160,
               "field_name": "tcp.urgent_ptr",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38212,7 +38620,7 @@
           "phv_number": 347,
           "records": [
             {
-              "position_offset": 166,
+              "position_offset": 167,
               "field_name": "udp.dst_port",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38229,7 +38637,7 @@
           "phv_number": 348,
           "records": [
             {
-              "position_offset": 168,
+              "position_offset": 169,
               "field_name": "udp.len",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38246,7 +38654,7 @@
           "phv_number": 349,
           "records": [
             {
-              "position_offset": 164,
+              "position_offset": 165,
               "field_name": "udp.checksum",
               "field_msb": 15,
               "field_lsb": 0,
@@ -38332,7 +38740,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -38889,10 +39297,10 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "immediate", "name": "$data0" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             }
           ]
@@ -38974,7 +39382,7 @@
               "dest": { "type": "phv", "name": "packet_in.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B24" }
+                { "type": "phv", "name": "B25" }
               ]
             },
             {
@@ -39078,7 +39486,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -39632,10 +40040,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "action_param", "name": "$data1" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             },
             {
@@ -40018,10 +40426,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B23" },
+              "dest": { "type": "phv", "name": "B24" },
               "src": [
                 { "type": "action_param", "name": "$data1" },
-                { "type": "phv", "name": "B23" }
+                { "type": "phv", "name": "B24" }
               ]
             },
             {
@@ -40059,14 +40467,14 @@
                 "number_memory_units_per_table_word": 0
               }
             ],
-            "result_physical_buses": [ 1 ],
+            "result_physical_buses": [ 2 ],
             "action_format": [
               {
-                "action_name": "act_5",
+                "action_name": "act_4",
                 "action_handle": 536870919,
                 "table_name": "filtering_ingress_port_vlan",
                 "next_table": 0,
-                "next_table_full": 97,
+                "next_table_full": 98,
                 "vliw_instruction": 1,
                 "vliw_instruction_full": 65,
                 "immediate_fields": []
@@ -40080,7 +40488,7 @@
       },
       "actions": [
         {
-          "name": "act_5",
+          "name": "act_4",
           "handle": 536870919,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -40102,12 +40510,12 @@
               "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
               "src": [
                 { "type": "immmediate", "name": "0" },
                 { "type": "phv", "name": "B13" }
@@ -40133,945 +40541,54 @@
     {
       "direction": "ingress",
       "handle": 16777223,
-      "name": "spgw_ingress.s1u_filter_table",
+      "name": "tbl_act_2",
       "table_type": "match",
-      "size": 3072,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": [],
-      "default_action_handle": 536870920,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [
-        {
-          "name": "ipv4.dst_addr",
-          "position": 0,
-          "match_type": "exact",
-          "start_bit": 0,
-          "bit_width": 32,
-          "bit_width_full": 32,
-          "is_valid": false,
-          "instance_name": "ipv4",
-          "field_name": "dst_addr"
-        }
-      ],
+      "size": 1,
+      "preferred_match_type": "exact",
       "match_attributes": {
         "stage_tables": [
           {
             "stage_number": 2,
-            "size": 3072,
-            "stage_table_type": "hash_match",
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
             "logical_table_id": 1,
-            "has_attached_gateway": false,
-            "hash_functions": [
+            "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
+            "pack_format": [
               {
-                "hash_bits": [
-                  {
-                    "hash_bit": 0,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 1,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 2,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 3,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 4,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 5,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 6,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 7,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 8,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 9,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 10,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 11,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 12,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 13,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 14,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 15,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 16,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 17,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 18,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 19,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 20,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 21,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 22,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 23,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 24,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 25,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 26,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 22, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 27,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 14, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 28,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 10, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 11, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 12, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 13, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 16, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 17, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 18, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
-                    ]
-                  },
-                  {
-                    "hash_bit": 29,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      { "field_bit": 15, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 19, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 20, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 21, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 25, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
-                    ]
-                  }
-                ]
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
               }
             ],
+            "result_physical_buses": [ 1 ],
             "action_format": [
               {
-                "action_name": "NoAction",
+                "action_name": "act_2",
                 "action_handle": 536870920,
                 "table_name": "spgw_ingress_ue_filter_table",
                 "next_table": 0,
                 "next_table_full": 34,
-                "vliw_instruction": 0,
-                "vliw_instruction_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 66,
                 "immediate_fields": []
               }
             ],
-            "result_physical_buses": [ 14 ],
-            "pack_format": [
-              {
-                "memory_word_width": 128,
-                "table_word_width": 128,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 1
-              }
-            ],
-            "memory_resource_allocation": null,
-            "ways": [
-              {
-                "stage_number": 2,
-                "way_number": 0,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 0,
-                  "hash_entry_bit_hi": 9,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ]
-                }
-              },
-              {
-                "stage_number": 2,
-                "way_number": 1,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 10,
-                  "hash_entry_bit_hi": 19,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ]
-                }
-              },
-              {
-                "stage_number": 2,
-                "way_number": 2,
-                "stage_table_type": "hash_way",
-                "size": 1024,
-                "pack_format": [
-                  {
-                    "memory_word_width": 128,
-                    "table_word_width": 128,
-                    "entries_per_table_word": 1,
-                    "number_memory_units_per_table_word": 1,
-                    "entries": [
-                      {
-                        "entry_number": 0,
-                        "fields": [
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 4,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "version",
-                            "lsb_mem_word_offset": 112,
-                            "field_name": "version",
-                            "match_mode": "s1q0"
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 18,
-                            "start_bit": 10,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 6
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 0,
-                            "start_bit": 16,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "field_name": "ipv4.dst_addr",
-                            "source": "spec",
-                            "lsb_mem_word_offset": 8,
-                            "start_bit": 24,
-                            "immediate_name": "",
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "match_mode": "unused",
-                            "enable_pfe": false,
-                            "field_width": 8
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 2,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 16,
-                            "field_name": "--padding_16_17--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 88,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 24,
-                            "field_name": "--padding_24_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
-                            "match_mode": "unused"
-                          }
-                        ]
-                      }
-                    ]
-                  }
-                ],
-                "memory_resource_allocation": {
-                  "hash_function_id": 0,
-                  "hash_entry_bit_lo": 20,
-                  "hash_entry_bit_hi": 29,
-                  "number_entry_bits": 10,
-                  "hash_select_bit_hi": 40,
-                  "hash_select_bit_lo": 40,
-                  "number_select_bits": 0,
-                  "memory_units_and_vpns": [ { "memory_units": [ 88 ], "vpns": [ 2 ] } ]
-                }
-              }
-            ]
+            "hash_functions": []
           }
         ],
-        "match_type": "exact",
+        "match_type": "match_with_no_key",
         "uses_dynamic_key_masks": false
       },
       "actions": [
         {
-          "name": "NoAction",
+          "name": "act_2",
           "handle": 536870920,
           "indirect_resources": [],
           "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
           "p4_parameters": [],
           "override_meter_addr": false,
           "override_meter_addr_pfe": false,
@@ -41083,9 +40600,106 @@
           "override_stateful_addr_pfe": false,
           "override_stateful_full_addr": 0,
           "is_action_meter_color_aware": false,
-          "primitives": []
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
+              "src": [ { "type": "phv", "name": "W1" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.s1u_sgw_addr" },
+              "src": [ { "type": "phv", "name": "W4" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.diffserv" },
+              "src": [ { "type": "phv", "name": "B3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.total_len" },
+              "src": [ { "type": "phv", "name": "H12" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.identification" },
+              "src": [ { "type": "phv", "name": "H14" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.ttl" },
+              "src": [ { "type": "phv", "name": "B7" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.protocol" },
+              "src": [ { "type": "phv", "name": "B10" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.src_addr" },
+              "src": [ { "type": "phv", "name": "W0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "ipv4.dst_addr" },
+              "src": [ { "type": "phv", "name": "W3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.src_port" },
+              "src": [ { "type": "phv", "name": "H3" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.dst_port" },
+              "src": [ { "type": "phv", "name": "H32" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.len" },
+              "src": [ { "type": "phv", "name": "H34" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "udp.checksum" },
+              "src": [ { "type": "phv", "name": "H36" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "B1" },
+              "src": [ { "type": "phv", "name": "B0" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "H9" },
+              "src": [ { "type": "phv", "name": "H8" } ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "W12" },
+              "src": [
+                { "type": "phv", "name": "W12" },
+                { "type": "phv", "name": "W12" }
+              ]
+            }
+          ]
         }
-      ]
+      ],
+      "default_action_handle": 536870920,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
     },
     {
       "direction": "ingress",
@@ -41157,7 +40771,7 @@
               "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
               "spare_bank_memory_unit": 0
             },
-            "default_next_table": 2,
+            "default_next_table": 0,
             "result_physical_buses": [ 0 ],
             "ternary_indirection_stage_table": {
               "stage_number": 2,
@@ -41984,7 +41598,7 @@
                   "action_handle": 536870921,
                   "table_name": "tbl_act_19",
                   "next_table": 0,
-                  "next_table_full": 49,
+                  "next_table_full": 64,
                   "vliw_instruction": 0,
                   "vliw_instruction_full": 64,
                   "immediate_fields": []
@@ -42044,7 +41658,1060 @@
     {
       "direction": "ingress",
       "handle": 16777225,
-      "name": "tbl_act_2",
+      "name": "spgw_ingress.s1u_filter_table",
+      "table_type": "match",
+      "size": 3072,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "default_action_handle": 536870922,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [
+        {
+          "name": "spgw.s1u_sgw_addr",
+          "position": 0,
+          "match_type": "exact",
+          "start_bit": 0,
+          "bit_width": 32,
+          "bit_width_full": 32,
+          "is_valid": false,
+          "instance_name": "spgw",
+          "field_name": "s1u_sgw_addr"
+        }
+      ],
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 3072,
+            "stage_table_type": "hash_match",
+            "logical_table_id": 1,
+            "has_attached_gateway": false,
+            "hash_functions": [
+              {
+                "hash_bits": [
+                  {
+                    "hash_bit": 0,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 1,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 2,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 3,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 4,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 5,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 6,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 7,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 8,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 9,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 10,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 11,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 12,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 13,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 14,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 15,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 16,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 17,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 18,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 19,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 20,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 0, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 21,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 1, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 22,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 2, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 23,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 3, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 24,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 4, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 23, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 5, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 29, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 26,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 6, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 22, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 27,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 7, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 14, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 24, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 28,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 8, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 10, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 11, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 12, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 13, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 16, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 17, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 18, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  },
+                  {
+                    "hash_bit": 29,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      { "field_bit": 9, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 15, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 19, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 20, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 21, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 25, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 26, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 27, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 28, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 30, "field_name": "spgw.s1u_sgw_addr" },
+                      { "field_bit": 31, "field_name": "spgw.s1u_sgw_addr" }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "action_format": [
+              {
+                "action_name": "NoAction",
+                "action_handle": 536870922,
+                "table_name": "tbl_act_19",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 0,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "result_physical_buses": [ 14 ],
+            "pack_format": [
+              {
+                "memory_word_width": 128,
+                "table_word_width": 128,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 1
+              }
+            ],
+            "memory_resource_allocation": null,
+            "ways": [
+              {
+                "stage_number": 3,
+                "way_number": 0,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 0,
+                  "hash_entry_bit_hi": 9,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 86 ], "vpns": [ 0 ] } ]
+                }
+              },
+              {
+                "stage_number": 3,
+                "way_number": 1,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 10,
+                  "hash_entry_bit_hi": 19,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 87 ], "vpns": [ 1 ] } ]
+                }
+              },
+              {
+                "stage_number": 3,
+                "way_number": 2,
+                "stage_table_type": "hash_way",
+                "size": 1024,
+                "pack_format": [
+                  {
+                    "memory_word_width": 128,
+                    "table_word_width": 128,
+                    "entries_per_table_word": 1,
+                    "number_memory_units_per_table_word": 1,
+                    "entries": [
+                      {
+                        "entry_number": 0,
+                        "fields": [
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 4,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "version",
+                            "lsb_mem_word_offset": 112,
+                            "field_name": "version",
+                            "match_mode": "s1q0"
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 18,
+                            "start_bit": 10,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 6
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 0,
+                            "start_bit": 16,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "field_name": "spgw.s1u_sgw_addr",
+                            "source": "spec",
+                            "lsb_mem_word_offset": 8,
+                            "start_bit": 24,
+                            "immediate_name": "",
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "match_mode": "unused",
+                            "enable_pfe": false,
+                            "field_width": 8
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 2,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 16,
+                            "field_name": "--padding_16_17--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 88,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 24,
+                            "field_name": "--padding_24_111--",
+                            "match_mode": "unused"
+                          },
+                          {
+                            "start_bit": 0,
+                            "enable_pfe": false,
+                            "field_width": 12,
+                            "lsb_mem_word_idx": 0,
+                            "msb_mem_word_idx": 0,
+                            "source": "zero",
+                            "lsb_mem_word_offset": 116,
+                            "field_name": "--padding_116_127--",
+                            "match_mode": "unused"
+                          }
+                        ]
+                      }
+                    ]
+                  }
+                ],
+                "memory_resource_allocation": {
+                  "hash_function_id": 0,
+                  "hash_entry_bit_lo": 20,
+                  "hash_entry_bit_hi": 29,
+                  "number_entry_bits": 10,
+                  "hash_select_bit_hi": 40,
+                  "hash_select_bit_lo": 40,
+                  "number_select_bits": 0,
+                  "memory_units_and_vpns": [ { "memory_units": [ 88 ], "vpns": [ 2 ] } ]
+                }
+              }
+            ]
+          }
+        ],
+        "match_type": "exact",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "NoAction",
+          "handle": 536870922,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": []
+        }
+      ]
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777226,
+      "name": "tbl_act_3",
+      "table_type": "match",
+      "size": 1,
+      "preferred_match_type": "exact",
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 3,
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
+            "logical_table_id": 2,
+            "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
+            "pack_format": [
+              {
+                "table_word_width": 0,
+                "memory_word_width": 0,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0
+              }
+            ],
+            "result_physical_buses": [ 1 ],
+            "action_format": [
+              {
+                "action_name": "act_1",
+                "action_handle": 536870923,
+                "table_name": "tbl_act_19",
+                "next_table": 0,
+                "next_table_full": 64,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 65,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
+          }
+        ],
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
+      },
+      "actions": [
+        {
+          "name": "act_1",
+          "handle": 536870923,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.direction" },
+              "src": [
+                { "type": "immmediate", "name": "0" },
+                { "type": "phv", "name": "B14" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870923,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777227,
+      "name": "tbl_act_4",
       "table_type": "match",
       "size": 1,
       "preferred_match_type": "exact",
@@ -42069,101 +42736,13 @@
             "result_physical_buses": [ 0 ],
             "action_format": [
               {
-                "action_name": "act_1",
-                "action_handle": 536870922,
-                "table_name": "tbl_act_17",
+                "action_name": "act_3",
+                "action_handle": 536870924,
+                "table_name": "tbl_act_19",
                 "next_table": 0,
                 "next_table_full": 64,
                 "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": []
-              }
-            ],
-            "hash_functions": []
-          }
-        ],
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false
-      },
-      "actions": [
-        {
-          "name": "act_1",
-          "handle": 536870922,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "disallowed_as_default_action_reason": "",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0,
-          "is_action_meter_color_aware": false,
-          "primitives": [
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
-              "src": [
-                { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
-              ]
-            }
-          ]
-        }
-      ],
-      "default_action_handle": 536870922,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": []
-    },
-    {
-      "direction": "ingress",
-      "handle": 16777226,
-      "name": "tbl_act_4",
-      "table_type": "match",
-      "size": 1,
-      "preferred_match_type": "exact",
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 3,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "logical_table_id": 2,
-            "has_attached_gateway": true,
-            "memory_resource_allocation": null,
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0
-              }
-            ],
-            "result_physical_buses": [ 2 ],
-            "action_format": [
-              {
-                "action_name": "act_3",
-                "action_handle": 536870923,
-                "table_name": "cond-5",
-                "next_table": 0,
-                "next_table_full": 65,
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 65,
+                "vliw_instruction_full": 66,
                 "immediate_fields": []
               }
             ],
@@ -42176,94 +42755,6 @@
       "actions": [
         {
           "name": "act_3",
-          "handle": 536870923,
-          "indirect_resources": [],
-          "allowed_as_default_action": true,
-          "disallowed_as_default_action_reason": "",
-          "p4_parameters": [],
-          "override_meter_addr": false,
-          "override_meter_addr_pfe": false,
-          "override_meter_full_addr": 0,
-          "override_stat_addr": false,
-          "override_stat_addr_pfe": false,
-          "override_stat_full_addr": 0,
-          "override_stateful_addr": false,
-          "override_stateful_addr_pfe": false,
-          "override_stateful_full_addr": 0,
-          "is_action_meter_color_aware": false,
-          "primitives": [
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
-              "src": [
-                { "type": "immmediate", "name": "2" },
-                { "type": "phv", "name": "B13" }
-              ]
-            }
-          ]
-        }
-      ],
-      "default_action_handle": 536870923,
-      "action_profile": "",
-      "default_next_table_mask": 0,
-      "ap_bind_indirect_res_to_match": [],
-      "is_resource_controllable": true,
-      "uses_range": false,
-      "match_key_fields": [],
-      "performs_hash_action": false,
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": []
-    },
-    {
-      "direction": "ingress",
-      "handle": 16777227,
-      "name": "tbl_act_5",
-      "table_type": "match",
-      "size": 1,
-      "preferred_match_type": "exact",
-      "match_attributes": {
-        "stage_tables": [
-          {
-            "stage_number": 3,
-            "size": 1,
-            "stage_table_type": "match_with_no_key",
-            "logical_table_id": 1,
-            "has_attached_gateway": true,
-            "memory_resource_allocation": null,
-            "default_next_table": 255,
-            "pack_format": [
-              {
-                "table_word_width": 0,
-                "memory_word_width": 0,
-                "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0
-              }
-            ],
-            "result_physical_buses": [ 1 ],
-            "action_format": [
-              {
-                "action_name": "act_4",
-                "action_handle": 536870924,
-                "table_name": "cond-5",
-                "next_table": 0,
-                "next_table_full": 65,
-                "vliw_instruction": 1,
-                "vliw_instruction_full": 64,
-                "immediate_fields": []
-              }
-            ],
-            "hash_functions": []
-          }
-        ],
-        "match_type": "match_with_no_key",
-        "uses_dynamic_key_masks": false
-      },
-      "actions": [
-        {
-          "name": "act_4",
           "handle": 536870924,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -42282,10 +42773,18 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
+              "dest": { "type": "phv", "name": "spgw.do_spgw" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "spgw.direction" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -42308,682 +42807,50 @@
     {
       "direction": "ingress",
       "handle": 16777228,
-      "name": "tbl_act_3",
+      "name": "tbl_act_5",
       "table_type": "match",
-      "size": 512,
+      "size": 1,
+      "preferred_match_type": "exact",
       "match_attributes": {
         "stage_tables": [
           {
             "stage_number": 4,
-            "size": 512,
-            "stage_table_type": "ternary_match",
+            "size": 1,
+            "stage_table_type": "match_with_no_key",
             "logical_table_id": 0,
             "has_attached_gateway": true,
+            "memory_resource_allocation": null,
+            "default_next_table": 255,
             "pack_format": [
               {
                 "table_word_width": 0,
-                "memory_word_width": 47,
+                "memory_word_width": 0,
                 "entries_per_table_word": 1,
-                "number_memory_units_per_table_word": 0,
-                "entries": [
-                  {
-                    "entry_number": 0,
-                    "fields": [
-                      {
-                        "field_name": "--tcam_payload_0--",
-                        "lsb_mem_word_offset": 0,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "payload",
-                        "start_bit": 0,
-                        "field_width": 1
-                      },
-                      {
-                        "field_name": "--tcam_parity_0--",
-                        "lsb_mem_word_offset": 45,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "parity",
-                        "start_bit": 0,
-                        "field_width": 2
-                      }
-                    ]
-                  }
-                ]
+                "number_memory_units_per_table_word": 0
               }
             ],
-            "memory_resource_allocation": {
-              "memory_type": "tcam",
-              "memory_units_and_vpns": [ { "memory_units": [], "vpns": [] } ],
-              "spare_bank_memory_unit": 0
-            },
-            "default_next_table": 1,
-            "result_physical_buses": [],
-            "ternary_indirection_stage_table": {
-              "stage_number": 4,
-              "stage_table_type": "ternary_indirection",
-              "size": 512,
-              "pack_format": [
-                {
-                  "memory_word_width": 128,
-                  "table_word_width": 128,
-                  "entries_per_table_word": 16,
-                  "number_memory_units_per_table_word": 1,
-                  "entries": [
-                    {
-                      "entry_number": 15,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 120,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 121,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 127,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 14,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 112,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 113,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 119,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 13,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 104,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 105,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 111,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 12,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 96,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 97,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 103,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 11,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 88,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 89,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 95,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 10,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 80,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 81,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 87,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 9,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 72,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 73,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 79,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 8,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 64,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 65,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 71,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 7,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 56,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 57,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 63,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 6,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 48,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 49,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 55,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 5,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 40,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 41,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 47,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 4,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 32,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 33,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 39,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 3,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 24,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 25,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 31,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 2,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 16,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 17,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 23,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 1,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 8,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 9,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 15,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    },
-                    {
-                      "entry_number": 0,
-                      "fields": [
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "instr",
-                          "lsb_mem_word_offset": 0,
-                          "field_name": "action"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 6,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "immediate",
-                          "lsb_mem_word_offset": 1,
-                          "field_name": "immediate"
-                        },
-                        {
-                          "start_bit": 0,
-                          "enable_pfe": false,
-                          "field_width": 1,
-                          "lsb_mem_word_idx": 0,
-                          "msb_mem_word_idx": 0,
-                          "source": "zero",
-                          "lsb_mem_word_offset": 7,
-                          "field_name": "--padding_7_7--"
-                        }
-                      ]
-                    }
-                  ]
-                }
-              ],
-              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
-              "action_format": [
-                {
-                  "action_name": "act_2",
-                  "action_handle": 536870925,
-                  "table_name": "cond-5",
-                  "next_table": 0,
-                  "next_table_full": 65,
-                  "vliw_instruction": 1,
-                  "vliw_instruction_full": 64,
-                  "immediate_fields": [
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 4,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 5,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_0",
-                      "param_type": "constant",
-                      "const_value": 0,
-                      "param_shift": 0,
-                      "dest_start": 3,
-                      "dest_width": 1
-                    }
-                  ]
-                }
-              ]
-            }
+            "result_physical_buses": [ 0 ],
+            "action_format": [
+              {
+                "action_name": "act_5",
+                "action_handle": 536870925,
+                "table_name": "cond-5",
+                "next_table": 0,
+                "next_table_full": 80,
+                "vliw_instruction": 1,
+                "vliw_instruction_full": 64,
+                "immediate_fields": []
+              }
+            ],
+            "hash_functions": []
           }
         ],
-        "match_type": "ternary"
+        "match_type": "match_with_no_key",
+        "uses_dynamic_key_masks": false
       },
-      "action_data_table_refs": [],
-      "selection_table_refs": [],
-      "meter_table_refs": [],
-      "statistics_table_refs": [],
-      "stateful_table_refs": [],
       "actions": [
         {
-          "name": "act_2",
+          "name": "act_5",
           "handle": 536870925,
           "indirect_resources": [],
           "allowed_as_default_action": true,
@@ -43002,99 +42869,10 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "spgw.direction" },
+              "dest": { "type": "phv", "name": "spgw_ingress_hasReturned" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.diffserv" },
-              "src": [ { "type": "phv", "name": "B3" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.total_len" },
-              "src": [ { "type": "phv", "name": "H12" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.identification" },
-              "src": [ { "type": "phv", "name": "H14" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.ttl" },
-              "src": [ { "type": "phv", "name": "B7" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.protocol" },
-              "src": [ { "type": "phv", "name": "B10" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.src_addr" },
-              "src": [ { "type": "phv", "name": "W0" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.dst_addr" },
-              "src": [ { "type": "phv", "name": "W2" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "ipv4.$valid" },
-              "src": [
-                { "type": "phv", "name": "W12" },
-                { "type": "phv", "name": "W10" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.src_port" },
-              "src": [ { "type": "phv", "name": "H3" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.dst_port" },
-              "src": [ { "type": "phv", "name": "H32" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.len" },
-              "src": [ { "type": "phv", "name": "H34" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.checksum" },
-              "src": [ { "type": "phv", "name": "H36" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "udp.$valid" },
-              "src": [
-                { "type": "phv", "name": "W12" },
-                { "type": "phv", "name": "W11" }
-              ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B1" },
-              "src": [ { "type": "phv", "name": "B0" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "H9" },
-              "src": [ { "type": "phv", "name": "H8" } ]
-            },
-            {
-              "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "W12" },
-              "src": [
-                { "type": "immediate", "name": "$data0" },
-                { "type": "phv", "name": "W12" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -43106,7 +42884,13 @@
       "ap_bind_indirect_res_to_match": [],
       "is_resource_controllable": true,
       "uses_range": false,
-      "match_key_fields": []
+      "match_key_fields": [],
+      "performs_hash_action": false,
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": []
     },
     {
       "direction": "ingress",
@@ -43150,7 +42934,7 @@
             "stage_number": 5,
             "size": 3072,
             "stage_table_type": "hash_match",
-            "logical_table_id": 0,
+            "logical_table_id": 1,
             "has_attached_gateway": true,
             "hash_functions": [
               {
@@ -43159,7 +42943,7 @@
                     "hash_bit": 0,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43178,7 +42962,7 @@
                     "hash_bit": 1,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43195,7 +42979,6 @@
                     "hash_bit": 2,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43207,14 +42990,14 @@
                       { "field_bit": 21, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 3,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43230,14 +43013,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 4,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43245,28 +43028,28 @@
                       { "field_bit": 22, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 5,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 18, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 20, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 27, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 27, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 6,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43279,14 +43062,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 7,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43296,14 +43079,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 8,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43316,14 +43099,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 9,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43335,14 +43118,15 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 10,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43361,7 +43145,7 @@
                     "hash_bit": 11,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43377,7 +43161,6 @@
                     "hash_bit": 12,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43388,14 +43171,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 13,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43408,14 +43191,14 @@
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 14,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43424,14 +43207,14 @@
                       { "field_bit": 21, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 15,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
@@ -43444,14 +43227,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 29, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 29, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 16,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 17, "field_name": "ipv4.dst_addr" },
@@ -43462,14 +43245,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 17,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43481,14 +43264,14 @@
                       { "field_bit": 23, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 18,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43496,14 +43279,14 @@
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 19,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43520,14 +43303,15 @@
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 20,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 0, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43543,7 +43327,7 @@
                     "hash_bit": 21,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 1, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
@@ -43564,7 +43348,6 @@
                     "hash_bit": 22,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 2, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 18, "field_name": "ipv4.dst_addr" },
@@ -43576,14 +43359,14 @@
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 30, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 0, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 23,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 3, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43591,14 +43374,14 @@
                       { "field_bit": 19, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 1, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 24,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 4, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43611,14 +43394,14 @@
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 2, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 25,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 5, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
@@ -43631,14 +43414,14 @@
                       { "field_bit": 27, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 3, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 26,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 6, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 14, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43650,14 +43433,14 @@
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 4, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 27,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 7, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43672,14 +43455,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 28, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 30, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 30, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 5, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 28,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 8, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 10, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 15, "field_name": "ipv4.dst_addr" },
@@ -43692,14 +43475,14 @@
                       { "field_bit": 25, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 26, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 29, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 31, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 31, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 6, "field_name": "ipv4.dst_addr" }
                     ]
                   },
                   {
                     "hash_bit": 29,
                     "seed": 0,
                     "bits_to_xor": [
-                      { "field_bit": 9, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 11, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 12, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 13, "field_name": "ipv4.dst_addr" },
@@ -43707,7 +43490,8 @@
                       { "field_bit": 16, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 22, "field_name": "ipv4.dst_addr" },
                       { "field_bit": 24, "field_name": "ipv4.dst_addr" },
-                      { "field_bit": 26, "field_name": "ipv4.dst_addr" }
+                      { "field_bit": 26, "field_name": "ipv4.dst_addr" },
+                      { "field_bit": 7, "field_name": "ipv4.dst_addr" }
                     ]
                   }
                 ]
@@ -43719,7 +43503,7 @@
                 "action_handle": 536870927,
                 "table_name": "tbl_spgw_ingress_drop_now_0",
                 "next_table": 0,
-                "next_table_full": 81,
+                "next_table_full": 82,
                 "vliw_instruction": 0,
                 "vliw_instruction_full": 65,
                 "immediate_fields": []
@@ -43729,12 +43513,12 @@
                 "action_handle": 536870926,
                 "table_name": "tbl_spgw_ingress_drop_now_0",
                 "next_table": 1,
-                "next_table_full": 81,
+                "next_table_full": 82,
                 "vliw_instruction": 1,
                 "vliw_instruction_full": 64,
                 "immediate_fields": [
                   {
-                    "param_name": "teid",
+                    "param_name": "s1u_enb_addr",
                     "param_type": "parameter",
                     "param_shift": 0,
                     "dest_start": 0,
@@ -44179,12 +43963,12 @@
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.teid" },
-              "src": [ { "type": "immediate", "name": "teid" } ]
+              "src": [ { "type": "action_param", "name": "teid" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
-              "src": [ { "type": "action_param", "name": "s1u_enb_addr" } ]
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
@@ -44206,7 +43990,7 @@
           "stage_number": 5,
           "size": 4096,
           "stage_table_type": "action_data",
-          "logical_table_id": 0,
+          "logical_table_id": 1,
           "pack_format": [
             {
               "memory_word_width": 128,
@@ -44261,7 +44045,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 64,
-                      "field_name": "s1u_enb_addr"
+                      "field_name": "s1u_sgw_addr"
                     },
                     {
                       "start_bit": 0,
@@ -44270,7 +44054,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 96,
-                      "field_name": "s1u_sgw_addr"
+                      "field_name": "teid"
                     }
                   ]
                 },
@@ -44284,7 +44068,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 0,
-                      "field_name": "s1u_enb_addr"
+                      "field_name": "s1u_sgw_addr"
                     },
                     {
                       "start_bit": 0,
@@ -44293,7 +44077,7 @@
                       "msb_mem_word_idx": 0,
                       "source": "spec",
                       "lsb_mem_word_offset": 32,
-                      "field_name": "s1u_sgw_addr"
+                      "field_name": "teid"
                     }
                   ]
                 }
@@ -44364,12 +44148,12 @@
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.teid" },
-              "src": [ { "type": "immediate", "name": "teid" } ]
+              "src": [ { "type": "action_param", "name": "teid" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "spgw.s1u_enb_addr" },
-              "src": [ { "type": "action_param", "name": "s1u_enb_addr" } ]
+              "src": [ { "type": "immediate", "name": "s1u_enb_addr" } ]
             },
             {
               "name": "ModifyFieldPrimitive",
@@ -44394,7 +44178,7 @@
             "stage_number": 5,
             "size": 1,
             "stage_table_type": "match_with_no_key",
-            "logical_table_id": 1,
+            "logical_table_id": 2,
             "has_attached_gateway": true,
             "memory_resource_allocation": null,
             "default_next_table": 255,
@@ -44406,7 +44190,7 @@
                 "number_memory_units_per_table_word": 0
               }
             ],
-            "result_physical_buses": [ 0 ],
+            "result_physical_buses": [ 1 ],
             "action_format": [
               {
                 "action_name": "spgw_ingress.drop_now",
@@ -44457,7 +44241,7 @@
               "dest": { "type": "phv", "name": "hasExited_0" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B13" }
+                { "type": "phv", "name": "B14" }
               ]
             }
           ]
@@ -45062,7 +44846,7 @@
               {
                 "action_name": "spgw_ingress.update_ue_cdr",
                 "action_handle": 536870929,
-                "table_name": "filtering_ingress_port_vlan",
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
                 "next_table": 0,
                 "next_table_full": 97,
                 "vliw_instruction": 0,
@@ -45072,7 +44856,7 @@
               {
                 "action_name": "NoAction",
                 "action_handle": 536870930,
-                "table_name": "filtering_ingress_port_vlan",
+                "table_name": "tbl_spgw_ingress_gtpu_decap_0",
                 "next_table": 0,
                 "next_table_full": 97,
                 "vliw_instruction": 0,
@@ -45511,7 +45295,7 @@
     {
       "direction": "ingress",
       "handle": 16777232,
-      "name": "filtering.ingress_port_vlan",
+      "name": "tbl_spgw_ingress_gtpu_decap",
       "table_type": "match",
       "size": 512,
       "match_attributes": {
@@ -45524,6 +45308,720 @@
             "has_attached_gateway": true,
             "pack_format": [
               {
+                "table_word_width": 0,
+                "memory_word_width": 47,
+                "entries_per_table_word": 1,
+                "number_memory_units_per_table_word": 0,
+                "entries": [
+                  {
+                    "entry_number": 0,
+                    "fields": [
+                      {
+                        "field_name": "--tcam_payload_0--",
+                        "lsb_mem_word_offset": 0,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "payload",
+                        "start_bit": 0,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "--tcam_parity_0--",
+                        "lsb_mem_word_offset": 45,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "parity",
+                        "start_bit": 0,
+                        "field_width": 2
+                      }
+                    ]
+                  }
+                ]
+              }
+            ],
+            "memory_resource_allocation": {
+              "memory_type": "tcam",
+              "memory_units_and_vpns": [ { "memory_units": [], "vpns": [] } ],
+              "spare_bank_memory_unit": 0
+            },
+            "default_next_table": 2,
+            "result_physical_buses": [],
+            "ternary_indirection_stage_table": {
+              "stage_number": 6,
+              "stage_table_type": "ternary_indirection",
+              "size": 512,
+              "pack_format": [
+                {
+                  "memory_word_width": 128,
+                  "table_word_width": 128,
+                  "entries_per_table_word": 16,
+                  "number_memory_units_per_table_word": 1,
+                  "entries": [
+                    {
+                      "entry_number": 15,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 120,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 121,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 127,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 14,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 112,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 113,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 119,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 13,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 104,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 105,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 111,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 12,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 96,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 97,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 103,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 11,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 88,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 89,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 95,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 10,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 80,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 81,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 87,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 9,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 72,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 73,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 79,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 8,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 64,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 65,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 71,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 7,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 56,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 57,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 63,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 6,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 48,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 49,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 55,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 5,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 40,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 41,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 47,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 4,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 32,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 33,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 39,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 3,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 24,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 25,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 31,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 2,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 16,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 17,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 23,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 1,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 8,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 9,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 15,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    },
+                    {
+                      "entry_number": 0,
+                      "fields": [
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "instr",
+                          "lsb_mem_word_offset": 0,
+                          "field_name": "action"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 6,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "immediate",
+                          "lsb_mem_word_offset": 1,
+                          "field_name": "immediate"
+                        },
+                        {
+                          "start_bit": 0,
+                          "enable_pfe": false,
+                          "field_width": 1,
+                          "lsb_mem_word_idx": 0,
+                          "msb_mem_word_idx": 0,
+                          "source": "zero",
+                          "lsb_mem_word_offset": 7,
+                          "field_name": "--padding_7_7--"
+                        }
+                      ]
+                    }
+                  ]
+                }
+              ],
+              "memory_resource_allocation": { "memory_type": "sram", "memory_units_and_vpns": [] },
+              "action_format": [
+                {
+                  "action_name": "spgw_ingress.gtpu_decap",
+                  "action_handle": 536870931,
+                  "table_name": "filtering_ingress_port_vlan",
+                  "next_table": 0,
+                  "next_table_full": 98,
+                  "vliw_instruction": 1,
+                  "vliw_instruction_full": 65,
+                  "immediate_fields": [
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 4,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 5,
+                      "dest_width": 1
+                    },
+                    {
+                      "param_name": "constant_0",
+                      "param_type": "constant",
+                      "const_value": 0,
+                      "param_shift": 0,
+                      "dest_start": 3,
+                      "dest_width": 1
+                    }
+                  ]
+                }
+              ]
+            }
+          }
+        ],
+        "match_type": "ternary"
+      },
+      "action_data_table_refs": [],
+      "selection_table_refs": [],
+      "meter_table_refs": [],
+      "statistics_table_refs": [],
+      "stateful_table_refs": [],
+      "actions": [
+        {
+          "name": "spgw_ingress.gtpu_decap",
+          "handle": 536870931,
+          "indirect_resources": [],
+          "allowed_as_default_action": true,
+          "disallowed_as_default_action_reason": "",
+          "p4_parameters": [],
+          "override_meter_addr": false,
+          "override_meter_addr_pfe": false,
+          "override_meter_full_addr": 0,
+          "override_stat_addr": false,
+          "override_stat_addr_pfe": false,
+          "override_stat_full_addr": 0,
+          "override_stateful_addr": false,
+          "override_stateful_addr_pfe": false,
+          "override_stateful_full_addr": 0,
+          "is_action_meter_color_aware": false,
+          "primitives": [
+            {
+              "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "W12" },
+              "src": [
+                { "type": "immediate", "name": "$data0" },
+                { "type": "phv", "name": "W12" }
+              ]
+            }
+          ]
+        }
+      ],
+      "default_action_handle": 536870931,
+      "action_profile": "",
+      "default_next_table_mask": 0,
+      "ap_bind_indirect_res_to_match": [],
+      "is_resource_controllable": true,
+      "uses_range": false,
+      "match_key_fields": []
+    },
+    {
+      "direction": "ingress",
+      "handle": 16777233,
+      "name": "filtering.ingress_port_vlan",
+      "table_type": "match",
+      "size": 512,
+      "match_attributes": {
+        "stage_tables": [
+          {
+            "stage_number": 6,
+            "size": 512,
+            "stage_table_type": "ternary_match",
+            "logical_table_id": 2,
+            "has_attached_gateway": true,
+            "pack_format": [
+              {
                 "table_word_width": 47,
                 "memory_word_width": 47,
                 "entries_per_table_word": 1,
@@ -45560,31 +46058,49 @@
                         "field_width": 2
                       },
                       {
-                        "field_name": "ig_intr_md.ingress_port",
-                        "lsb_mem_word_offset": 1,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 9
-                      },
-                      {
-                        "field_name": "vlan_tag.vlan_id",
-                        "lsb_mem_word_offset": 17,
-                        "lsb_mem_word_idx": 0,
-                        "msb_mem_word_idx": 0,
-                        "source": "spec",
-                        "start_bit": 0,
-                        "field_width": 12
-                      },
-                      {
                         "field_name": "vlan_tag",
-                        "lsb_mem_word_offset": 36,
+                        "lsb_mem_word_offset": 4,
                         "lsb_mem_word_idx": 0,
                         "msb_mem_word_idx": 0,
                         "source": "spec",
                         "start_bit": 0,
                         "field_width": 1
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 9,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 1
+                      },
+                      {
+                        "field_name": "ig_intr_md.ingress_port",
+                        "lsb_mem_word_offset": 17,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 25,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 8,
+                        "field_width": 4
+                      },
+                      {
+                        "field_name": "vlan_tag.vlan_id",
+                        "lsb_mem_word_offset": 33,
+                        "lsb_mem_word_idx": 0,
+                        "msb_mem_word_idx": 0,
+                        "source": "spec",
+                        "start_bit": 0,
+                        "field_width": 8
                       }
                     ]
                   }
@@ -45596,7 +46112,7 @@
               "memory_units_and_vpns": [ { "memory_units": [ 0 ], "vpns": [ 0 ] } ],
               "spare_bank_memory_unit": 0
             },
-            "default_next_table": 2,
+            "default_next_table": 3,
             "result_physical_buses": [ 0 ],
             "ternary_indirection_stage_table": {
               "stage_number": 6,
@@ -45625,7 +46141,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45635,12 +46151,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 120,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 115,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45660,7 +46176,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45670,12 +46186,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 88,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 83,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45695,7 +46211,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45705,12 +46221,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 56,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 51,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     },
@@ -45730,7 +46246,7 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 21,
+                          "field_width": 16,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "immediate",
@@ -45740,12 +46256,12 @@
                         {
                           "start_bit": 0,
                           "enable_pfe": false,
-                          "field_width": 8,
+                          "field_width": 13,
                           "lsb_mem_word_idx": 0,
                           "msb_mem_word_idx": 0,
                           "source": "zero",
-                          "lsb_mem_word_offset": 24,
-                          "field_name": "--padding_24_31--"
+                          "lsb_mem_word_offset": 19,
+                          "field_name": "--padding_19_31--"
                         }
                       ]
                     }
@@ -45760,40 +46276,24 @@
               "action_format": [
                 {
                   "action_name": "nop",
-                  "action_handle": 536870933,
+                  "action_handle": 536870934,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 0,
                   "vliw_instruction_full": 64,
                   "immediate_fields": []
                 },
                 {
                   "action_name": "filtering.push_internal_vlan",
-                  "action_handle": 536870931,
+                  "action_handle": 536870932,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 1,
-                  "vliw_instruction_full": 65,
+                  "vliw_instruction_full": 66,
                   "immediate_fields": [
                     {
-                      "param_name": "constant_1",
-                      "param_type": "constant",
-                      "const_value": 1,
-                      "param_shift": 0,
-                      "dest_start": 19,
-                      "dest_width": 1
-                    },
-                    {
-                      "param_name": "constant_1",
-                      "param_type": "constant",
-                      "const_value": 1,
-                      "param_shift": 0,
-                      "dest_start": 20,
-                      "dest_width": 1
-                    },
-                    {
                       "param_name": "constant_0",
                       "param_type": "constant",
                       "const_value": 0,
@@ -45820,12 +46320,12 @@
                 },
                 {
                   "action_name": "filtering.set_vlan",
-                  "action_handle": 536870932,
+                  "action_handle": 536870933,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 2,
-                  "vliw_instruction_full": 66,
+                  "vliw_instruction_full": 68,
                   "immediate_fields": [
                     {
                       "param_name": "new_vlan_id",
@@ -45838,10 +46338,10 @@
                 },
                 {
                   "action_name": "filtering.drop",
-                  "action_handle": 536870934,
+                  "action_handle": 536870935,
                   "table_name": "filtering_fwd_classifier",
                   "next_table": 0,
-                  "next_table_full": 98,
+                  "next_table_full": 99,
                   "vliw_instruction": 3,
                   "vliw_instruction_full": 67,
                   "immediate_fields": []
@@ -45866,7 +46366,7 @@
       "actions": [
         {
           "name": "nop",
-          "handle": 536870933,
+          "handle": 536870934,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45885,7 +46385,7 @@
         },
         {
           "name": "filtering.push_internal_vlan",
-          "handle": 536870931,
+          "handle": 536870932,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45910,6 +46410,14 @@
           "primitives": [
             {
               "name": "ModifyFieldPrimitive",
+              "dest": { "type": "phv", "name": "vlan_tag.$valid" },
+              "src": [
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "W13" }
+              ]
+            },
+            {
+              "name": "ModifyFieldPrimitive",
               "dest": { "type": "phv", "name": "vlan_tag.ether_type" },
               "src": [ { "type": "phv", "name": "H10" } ]
             },
@@ -45920,10 +46428,10 @@
             },
             {
               "name": "ModifyFieldPrimitive",
-              "dest": { "type": "phv", "name": "B15" },
+              "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
-                { "type": "immediate", "name": "$data1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "immmediate", "name": "1" },
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -45935,7 +46443,7 @@
         },
         {
           "name": "filtering.set_vlan",
-          "handle": 536870932,
+          "handle": 536870933,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45970,7 +46478,7 @@
         },
         {
           "name": "filtering.drop",
-          "handle": 536870934,
+          "handle": 536870935,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -45997,7 +46505,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870933,
+      "default_action_handle": 536870934,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -46050,7 +46558,7 @@
           "stage_number": 6,
           "size": 2048,
           "stage_table_type": "statistics",
-          "logical_table_id": 1,
+          "logical_table_id": 2,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -46079,7 +46587,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777233,
+      "handle": 16777234,
       "name": "filtering.fwd_classifier",
       "table_type": "match",
       "size": 3072,
@@ -46094,7 +46602,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870935,
+      "default_action_handle": 536870936,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -46141,7 +46649,7 @@
             "stage_number": 6,
             "size": 3072,
             "stage_table_type": "hash_match",
-            "logical_table_id": 2,
+            "logical_table_id": 3,
             "has_attached_gateway": false,
             "hash_functions": [
               {
@@ -48300,18 +48808,18 @@
             "action_format": [
               {
                 "action_name": "filtering.set_forwarding_type",
-                "action_handle": 536870935,
+                "action_handle": 536870936,
                 "table_name": "tbl_act_23",
                 "next_table": 0,
-                "next_table_full": 99,
+                "next_table_full": 100,
                 "vliw_instruction": 0,
-                "vliw_instruction_full": 68,
+                "vliw_instruction_full": 69,
                 "immediate_fields": [
                   {
                     "param_name": "fwd_type",
                     "param_type": "parameter",
                     "param_shift": 0,
-                    "dest_start": 2,
+                    "dest_start": 1,
                     "dest_width": 3
                   }
                 ]
@@ -48346,7 +48854,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48361,7 +48869,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48464,17 +48972,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48486,23 +48983,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48539,7 +49025,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48554,7 +49040,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48657,17 +49143,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48679,23 +49154,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48732,7 +49196,7 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 5,
+                            "field_width": 4,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "immediate",
@@ -48747,7 +49211,7 @@
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "version",
-                            "lsb_mem_word_offset": 112,
+                            "lsb_mem_word_offset": 4,
                             "field_name": "version",
                             "match_mode": "s1q0"
                           },
@@ -48850,17 +49314,6 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 3,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 5,
-                            "field_name": "--padding_5_7--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
                             "field_width": 1,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
@@ -48872,23 +49325,12 @@
                           {
                             "start_bit": 0,
                             "enable_pfe": false,
-                            "field_width": 40,
+                            "field_width": 56,
                             "lsb_mem_word_idx": 0,
                             "msb_mem_word_idx": 0,
                             "source": "zero",
                             "lsb_mem_word_offset": 72,
-                            "field_name": "--padding_72_111--",
-                            "match_mode": "unused"
-                          },
-                          {
-                            "start_bit": 0,
-                            "enable_pfe": false,
-                            "field_width": 12,
-                            "lsb_mem_word_idx": 0,
-                            "msb_mem_word_idx": 0,
-                            "source": "zero",
-                            "lsb_mem_word_offset": 116,
-                            "field_name": "--padding_116_127--",
+                            "field_name": "--padding_72_127--",
                             "match_mode": "unused"
                           }
                         ]
@@ -48916,7 +49358,7 @@
       "actions": [
         {
           "name": "filtering.set_forwarding_type",
-          "handle": 536870935,
+          "handle": 536870936,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [
@@ -48962,7 +49404,7 @@
           "stage_number": 6,
           "size": 4096,
           "stage_table_type": "statistics",
-          "logical_table_id": 2,
+          "logical_table_id": 3,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -48992,7 +49434,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777234,
+      "handle": 16777235,
       "name": "tbl_act_9",
       "table_type": "match",
       "size": 512,
@@ -49003,7 +49445,7 @@
             "stage_number": 6,
             "size": 1,
             "stage_table_type": "match_with_no_key",
-            "logical_table_id": 3,
+            "logical_table_id": 4,
             "has_attached_gateway": true,
             "memory_resource_allocation": null,
             "default_next_table": 255,
@@ -49019,7 +49461,7 @@
             "action_format": [
               {
                 "action_name": "act_9",
-                "action_handle": 536870936,
+                "action_handle": 536870937,
                 "table_name": "forwarding_bridging",
                 "next_table": 0,
                 "next_table_full": 112,
@@ -49037,7 +49479,7 @@
       "actions": [
         {
           "name": "act_9",
-          "handle": 536870936,
+          "handle": 536870937,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49055,7 +49497,7 @@
           "primitives": []
         }
       ],
-      "default_action_handle": 536870936,
+      "default_action_handle": 536870937,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49086,7 +49528,7 @@
           "stage_number": 6,
           "size": 2048,
           "stage_table_type": "statistics",
-          "logical_table_id": 3,
+          "logical_table_id": 4,
           "pack_format": [
             {
               "table_word_width": 128,
@@ -49115,7 +49557,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777235,
+      "handle": 16777236,
       "name": "forwarding.bridging",
       "table_type": "match",
       "size": 512,
@@ -49331,7 +49773,7 @@
               "action_format": [
                 {
                   "action_name": "NoAction",
-                  "action_handle": 536870938,
+                  "action_handle": 536870939,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -49341,7 +49783,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870937,
+                  "action_handle": 536870938,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -49377,7 +49819,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870938,
+          "handle": 536870939,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49396,7 +49838,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870937,
+          "handle": 536870938,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -49427,7 +49869,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870938,
+      "default_action_handle": 536870939,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49498,7 +49940,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777236,
+      "handle": 16777237,
       "name": "forwarding.mpls",
       "table_type": "match",
       "size": 3072,
@@ -49513,7 +49955,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870940,
+      "default_action_handle": 536870941,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -49926,7 +50368,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870940,
+                "action_handle": 536870941,
                 "table_name": "tbl_act_20",
                 "next_table": 0,
                 "next_table_full": 114,
@@ -49936,7 +50378,7 @@
               },
               {
                 "action_name": "forwarding.pop_mpls_and_next",
-                "action_handle": 536870939,
+                "action_handle": 536870940,
                 "table_name": "tbl_act_20",
                 "next_table": 0,
                 "next_table_full": 114,
@@ -50336,7 +50778,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870940,
+          "handle": 536870941,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [],
@@ -50354,7 +50796,7 @@
         },
         {
           "name": "forwarding.pop_mpls_and_next",
-          "handle": 536870939,
+          "handle": 536870940,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "p4_parameters": [
@@ -50381,7 +50823,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -50434,7 +50876,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777237,
+      "handle": 16777238,
       "name": "tbl_act_6",
       "table_type": "match",
       "size": 512,
@@ -50624,7 +51066,7 @@
               "action_format": [
                 {
                   "action_name": "act_6",
-                  "action_handle": 536870941,
+                  "action_handle": 536870942,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50655,7 +51097,7 @@
       "actions": [
         {
           "name": "act_6",
-          "handle": 536870941,
+          "handle": 536870942,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50687,7 +51129,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870941,
+      "default_action_handle": 536870942,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -50697,7 +51139,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777238,
+      "handle": 16777239,
       "name": "forwarding.unicast_v4",
       "table_type": "match",
       "size": 512,
@@ -50868,7 +51310,7 @@
               "action_format": [
                 {
                   "action_name": "NoAction",
-                  "action_handle": 536870943,
+                  "action_handle": 536870944,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50878,7 +51320,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870942,
+                  "action_handle": 536870943,
                   "table_name": "forwarding_acl",
                   "next_table": 0,
                   "next_table_full": 128,
@@ -50914,7 +51356,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870943,
+          "handle": 536870944,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50933,7 +51375,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870942,
+          "handle": 536870943,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -50964,7 +51406,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870943,
+      "default_action_handle": 536870944,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -51024,7 +51466,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777239,
+      "handle": 16777240,
       "name": "forwarding.acl",
       "table_type": "match",
       "size": 256,
@@ -51510,7 +51952,7 @@
               "action_format": [
                 {
                   "action_name": "nop",
-                  "action_handle": 536870947,
+                  "action_handle": 536870948,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51520,7 +51962,7 @@
                 },
                 {
                   "action_name": "forwarding.set_next_id",
-                  "action_handle": 536870944,
+                  "action_handle": 536870945,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51538,7 +51980,7 @@
                 },
                 {
                   "action_name": "forwarding.duplicate_to_controller",
-                  "action_handle": 536870945,
+                  "action_handle": 536870946,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51557,7 +51999,7 @@
                 },
                 {
                   "action_name": "forwarding.drop",
-                  "action_handle": 536870946,
+                  "action_handle": 536870947,
                   "table_name": "next_simple",
                   "next_table": 0,
                   "next_table_full": 144,
@@ -51585,7 +52027,7 @@
       "actions": [
         {
           "name": "nop",
-          "handle": 536870947,
+          "handle": 536870948,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51604,7 +52046,7 @@
         },
         {
           "name": "forwarding.set_next_id",
-          "handle": 536870944,
+          "handle": 536870945,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51636,7 +52078,7 @@
         },
         {
           "name": "forwarding.duplicate_to_controller",
-          "handle": 536870945,
+          "handle": 536870946,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51664,7 +52106,7 @@
         },
         {
           "name": "forwarding.drop",
-          "handle": 536870946,
+          "handle": 536870947,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -51691,7 +52133,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870947,
+      "default_action_handle": 536870948,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -51872,7 +52314,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777240,
+      "handle": 16777241,
       "name": "next.simple",
       "table_type": "match",
       "size": 3072,
@@ -51893,7 +52335,7 @@
         }
       ],
       "stateful_table_refs": [],
-      "default_action_handle": 536870952,
+      "default_action_handle": 536870953,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -53609,7 +54051,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870952,
+                "action_handle": 536870953,
                 "table_name": "next_hashed",
                 "next_table": 0,
                 "next_table_full": 162,
@@ -53619,7 +54061,7 @@
               },
               {
                 "action_name": "next.output",
-                "action_handle": 536870948,
+                "action_handle": 536870949,
                 "table_name": "next_hashed",
                 "next_table": 1,
                 "next_table_full": 162,
@@ -53629,7 +54071,7 @@
               },
               {
                 "action_name": "next.set_vlan_output",
-                "action_handle": 536870949,
+                "action_handle": 536870950,
                 "table_name": "next_hashed",
                 "next_table": 2,
                 "next_table_full": 162,
@@ -53639,7 +54081,7 @@
               },
               {
                 "action_name": "next.l3_routing",
-                "action_handle": 536870950,
+                "action_handle": 536870951,
                 "table_name": "next_hashed",
                 "next_table": 3,
                 "next_table_full": 162,
@@ -53649,7 +54091,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v4",
-                "action_handle": 536870951,
+                "action_handle": 536870952,
                 "table_name": "next_hashed",
                 "next_table": 4,
                 "next_table_full": 162,
@@ -54101,7 +54543,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870952,
+          "handle": 536870953,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54119,7 +54561,7 @@
         },
         {
           "name": "next.output",
-          "handle": 536870948,
+          "handle": 536870949,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54153,7 +54595,7 @@
         },
         {
           "name": "next.set_vlan_output",
-          "handle": 536870949,
+          "handle": 536870950,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54194,7 +54636,7 @@
               "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -54209,7 +54651,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870950,
+          "handle": 536870951,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54265,7 +54707,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870951,
+          "handle": 536870952,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54308,7 +54750,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -54428,7 +54870,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870952
+              "action_handle": 536870953
             },
             {
               "memory_word_width": 128,
@@ -54469,7 +54911,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870948
+              "action_handle": 536870949
             },
             {
               "memory_word_width": 128,
@@ -54528,7 +54970,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870949
+              "action_handle": 536870950
             },
             {
               "memory_word_width": 128,
@@ -54605,7 +55047,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870950
+              "action_handle": 536870951
             },
             {
               "memory_word_width": 128,
@@ -54682,7 +55124,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870951
+              "action_handle": 536870952
             }
           ],
           "memory_resource_allocation": {
@@ -54699,7 +55141,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870952,
+          "handle": 536870953,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54717,7 +55159,7 @@
         },
         {
           "name": "next.output",
-          "handle": 536870948,
+          "handle": 536870949,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54751,7 +55193,7 @@
         },
         {
           "name": "next.set_vlan_output",
-          "handle": 536870949,
+          "handle": 536870950,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54792,7 +55234,7 @@
               "dest": { "type": "phv", "name": "fabric_metadata.pop_vlan_at_egress" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "B14" }
               ]
             },
             {
@@ -54807,7 +55249,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870950,
+          "handle": 536870951,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54863,7 +55305,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870951,
+          "handle": 536870952,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -54906,7 +55348,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -54956,7 +55398,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777241,
+      "handle": 16777242,
       "name": "tbl_act_7",
       "table_type": "match",
       "size": 1,
@@ -54983,7 +55425,7 @@
             "action_format": [
               {
                 "action_name": "act_7",
-                "action_handle": 536870953,
+                "action_handle": 536870954,
                 "table_name": "next_hashed",
                 "next_table": 0,
                 "next_table_full": 162,
@@ -55001,7 +55443,7 @@
       "actions": [
         {
           "name": "act_7",
-          "handle": 536870953,
+          "handle": 536870954,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -55029,7 +55471,7 @@
           ]
         }
       ],
-      "default_action_handle": 536870953,
+      "default_action_handle": 536870954,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -55045,7 +55487,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777242,
+      "handle": 16777243,
       "name": "next.hashed",
       "table_type": "match",
       "size": 3072,
@@ -55074,7 +55516,7 @@
       "stateful_table_refs": [],
       "default_selector_mask": 0,
       "default_selector_value": 0,
-      "default_action_handle": 536870957,
+      "default_action_handle": 536870958,
       "action_profile": "next.ecmp_selector",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -55125,23 +55567,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55149,11 +55575,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55175,22 +55621,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55199,11 +55629,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55229,35 +55679,35 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 17,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55287,38 +55737,10 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55331,11 +55753,39 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55357,31 +55807,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55389,12 +55815,36 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -55419,6 +55869,22 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 26,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55431,23 +55897,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 3,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55469,27 +55919,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55505,11 +55935,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55527,6 +55977,26 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 18,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55543,27 +56013,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 21,
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55585,27 +56035,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55613,7 +56047,19 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55631,28 +56077,24 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 21,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -55681,7 +56123,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 17,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55689,7 +56151,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 26,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55705,23 +56167,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 21,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 0,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55751,23 +56197,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55775,7 +56205,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55793,31 +56243,15 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55825,11 +56259,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55851,22 +56301,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55875,15 +56309,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 19,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55905,26 +56355,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -55937,11 +56367,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 4,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -55967,27 +56417,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 3,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -55999,7 +56433,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56013,23 +56463,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56041,7 +56475,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56067,19 +56517,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 28,
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56087,19 +56549,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 22,
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56117,35 +56567,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56153,8 +56575,32 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -56175,35 +56621,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56229,31 +56671,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 17,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56261,12 +56679,40 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
                         "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 0,
+                        "field_name": "fabric_metadata.next_id"
                       }
                     ]
                   },
@@ -56291,15 +56737,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56307,11 +56745,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 1,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56333,19 +56783,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
+                        "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56353,19 +56815,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 0,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 20,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 22,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 23,
+                        "field_bit": 2,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56387,31 +56837,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 23,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
                         "field_bit": 27,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 1,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 16,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 19,
+                        "field_bit": 3,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56437,31 +56887,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 29,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 31,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 2,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 18,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56471,23 +56901,9 @@
                       {
                         "field_bit": 21,
                         "field_name": "fabric_metadata.next_id"
-                      }
-                    ]
-                  },
-                  {
-                    "hash_bit": 25,
-                    "seed": 0,
-                    "bits_to_xor": [
-                      {
-                        "field_bit": 11,
-                        "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
+                        "field_bit": 23,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56503,7 +56919,17 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 3,
+                        "field_bit": 4,
+                        "field_name": "fabric_metadata.next_id"
+                      }
+                    ]
+                  },
+                  {
+                    "hash_bit": 25,
+                    "seed": 0,
+                    "bits_to_xor": [
+                      {
+                        "field_bit": 11,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56515,7 +56941,7 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 19,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56523,7 +56949,31 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 21,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 24,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 27,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 28,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 5,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56545,18 +56995,6 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 4,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
@@ -56565,15 +57003,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 18,
+                        "field_bit": 24,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 25,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 6,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56591,31 +57041,15 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 28,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 5,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 20,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56623,7 +57057,23 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 26,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 7,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56641,31 +57091,27 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 25,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 30,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 6,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
                         "field_bit": 17,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 21,
+                        "field_bit": 19,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 22,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 25,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 29,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56687,19 +57133,11 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 24,
+                        "field_bit": 16,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 26,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 27,
-                        "field_name": "fabric_metadata.next_id"
-                      },
-                      {
-                        "field_bit": 7,
+                        "field_bit": 18,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
@@ -56707,15 +57145,19 @@
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 20,
+                        "field_bit": 27,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 22,
+                        "field_bit": 28,
                         "field_name": "fabric_metadata.next_id"
                       },
                       {
-                        "field_bit": 23,
+                        "field_bit": 30,
+                        "field_name": "fabric_metadata.next_id"
+                      },
+                      {
+                        "field_bit": 31,
                         "field_name": "fabric_metadata.next_id"
                       }
                     ]
@@ -56726,7 +57168,7 @@
             "action_format": [
               {
                 "action_name": "NoAction",
-                "action_handle": 536870957,
+                "action_handle": 536870958,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56736,7 +57178,7 @@
               },
               {
                 "action_name": "next.l3_routing",
-                "action_handle": 536870954,
+                "action_handle": 536870955,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56746,7 +57188,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v4",
-                "action_handle": 536870955,
+                "action_handle": 536870956,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -56756,7 +57198,7 @@
               },
               {
                 "action_name": "next.mpls_routing_v6",
-                "action_handle": 536870956,
+                "action_handle": 536870957,
                 "table_name": "tbl_act_24",
                 "next_table": 0,
                 "next_table_full": 176,
@@ -57217,7 +57659,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870957,
+          "handle": 536870958,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57235,7 +57677,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870954,
+          "handle": 536870955,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57291,7 +57733,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870955,
+          "handle": 536870956,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57334,7 +57776,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -57381,7 +57823,7 @@
         },
         {
           "name": "next.mpls_routing_v6",
-          "handle": 536870956,
+          "handle": 536870957,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57424,7 +57866,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -57538,7 +57980,7 @@
                   ]
                 }
               ],
-              "action_handle": 536870957
+              "action_handle": 536870958
             },
             {
               "memory_word_width": 128,
@@ -57624,130 +58066,6 @@
                   ]
                 }
               ],
-              "action_handle": 536870954
-            },
-            {
-              "memory_word_width": 128,
-              "table_word_width": 256,
-              "entries_per_table_word": 1,
-              "number_memory_units_per_table_word": 2,
-              "entries": [
-                {
-                  "entry_number": 0,
-                  "fields": [
-                    {
-                      "start_bit": 0,
-                      "field_width": 3,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "constant",
-                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 3 } ],
-                      "lsb_mem_word_offset": 1,
-                      "field_name": "$constant0"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 1,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "constant",
-                      "const_tuples": [ { "dest_start": 0, "value": 1, "dest_width": 1 } ],
-                      "lsb_mem_word_offset": 0,
-                      "field_name": "$constant1"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 4,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 4,
-                      "field_name": "label"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 9,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 32,
-                      "field_name": "port_num"
-                    },
-                    {
-                      "start_bit": 4,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 48,
-                      "field_name": "label"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 64,
-                      "field_name": "dmac"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 16,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 80,
-                      "field_name": "smac"
-                    },
-                    {
-                      "start_bit": 16,
-                      "field_width": 32,
-                      "lsb_mem_word_idx": 1,
-                      "msb_mem_word_idx": 1,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 64,
-                      "field_name": "dmac"
-                    },
-                    {
-                      "start_bit": 16,
-                      "field_width": 32,
-                      "lsb_mem_word_idx": 1,
-                      "msb_mem_word_idx": 1,
-                      "source": "spec",
-                      "lsb_mem_word_offset": 96,
-                      "field_name": "smac"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 24,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 8,
-                      "field_name": "--padding_8_31--"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 7,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 0,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 41,
-                      "field_name": "--padding_41_47--"
-                    },
-                    {
-                      "start_bit": 0,
-                      "field_width": 96,
-                      "lsb_mem_word_idx": 0,
-                      "msb_mem_word_idx": 1,
-                      "source": "zero",
-                      "lsb_mem_word_offset": 96,
-                      "field_name": "--padding_96_191--"
-                    }
-                  ]
-                }
-              ],
               "action_handle": 536870955
             },
             {
@@ -57873,6 +58191,130 @@
                 }
               ],
               "action_handle": 536870956
+            },
+            {
+              "memory_word_width": 128,
+              "table_word_width": 256,
+              "entries_per_table_word": 1,
+              "number_memory_units_per_table_word": 2,
+              "entries": [
+                {
+                  "entry_number": 0,
+                  "fields": [
+                    {
+                      "start_bit": 0,
+                      "field_width": 3,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 0, "dest_width": 3 } ],
+                      "lsb_mem_word_offset": 1,
+                      "field_name": "$constant0"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 1,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "constant",
+                      "const_tuples": [ { "dest_start": 0, "value": 1, "dest_width": 1 } ],
+                      "lsb_mem_word_offset": 0,
+                      "field_name": "$constant1"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 4,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 4,
+                      "field_name": "label"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 9,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 32,
+                      "field_name": "port_num"
+                    },
+                    {
+                      "start_bit": 4,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 48,
+                      "field_name": "label"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 16,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 80,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 1,
+                      "msb_mem_word_idx": 1,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 64,
+                      "field_name": "dmac"
+                    },
+                    {
+                      "start_bit": 16,
+                      "field_width": 32,
+                      "lsb_mem_word_idx": 1,
+                      "msb_mem_word_idx": 1,
+                      "source": "spec",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "smac"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 24,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 8,
+                      "field_name": "--padding_8_31--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 7,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 0,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 41,
+                      "field_name": "--padding_41_47--"
+                    },
+                    {
+                      "start_bit": 0,
+                      "field_width": 96,
+                      "lsb_mem_word_idx": 0,
+                      "msb_mem_word_idx": 1,
+                      "source": "zero",
+                      "lsb_mem_word_offset": 96,
+                      "field_name": "--padding_96_191--"
+                    }
+                  ]
+                }
+              ],
+              "action_handle": 536870957
             }
           ],
           "memory_resource_allocation": {
@@ -57885,7 +58327,7 @@
       "actions": [
         {
           "name": "NoAction",
-          "handle": 536870957,
+          "handle": 536870958,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57903,7 +58345,7 @@
         },
         {
           "name": "next.l3_routing",
-          "handle": 536870954,
+          "handle": 536870955,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -57959,7 +58401,7 @@
         },
         {
           "name": "next.mpls_routing_v4",
-          "handle": 536870955,
+          "handle": 536870956,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58002,7 +58444,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -58049,7 +58491,7 @@
         },
         {
           "name": "next.mpls_routing_v6",
-          "handle": 536870956,
+          "handle": 536870957,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58092,7 +58534,7 @@
               "dest": { "type": "phv", "name": "mpls.$valid" },
               "src": [
                 { "type": "immmediate", "name": "1" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             },
             {
@@ -58181,7 +58623,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777243,
+      "handle": 16777244,
       "name": "tbl_act_10",
       "table_type": "match",
       "size": 1,
@@ -58208,7 +58650,7 @@
             "action_format": [
               {
                 "action_name": "act_10",
-                "action_handle": 536870958,
+                "action_handle": 536870959,
                 "table_name": "tbl_act_22",
                 "next_table": 0,
                 "next_table_full": 177,
@@ -58226,7 +58668,7 @@
       "actions": [
         {
           "name": "act_10",
-          "handle": 536870958,
+          "handle": 536870959,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58252,13 +58694,13 @@
               "dest": { "type": "phv", "name": "vlan_tag.$valid" },
               "src": [
                 { "type": "immmediate", "name": "0" },
-                { "type": "phv", "name": "B15" }
+                { "type": "phv", "name": "W13" }
               ]
             }
           ]
         }
       ],
-      "default_action_handle": 536870958,
+      "default_action_handle": 536870959,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -58274,7 +58716,7 @@
     },
     {
       "direction": "ingress",
-      "handle": 16777244,
+      "handle": 16777245,
       "name": "tbl_act_8",
       "table_type": "match",
       "size": 512,
@@ -58301,7 +58743,7 @@
             "action_format": [
               {
                 "action_name": "act_8",
-                "action_handle": 536870959,
+                "action_handle": 536870960,
                 "table_name": "--END_OF_PIPELINE--",
                 "next_table": 0,
                 "next_table_full": 255,
@@ -58319,7 +58761,7 @@
       "actions": [
         {
           "name": "act_8",
-          "handle": 536870959,
+          "handle": 536870960,
           "indirect_resources": [],
           "allowed_as_default_action": true,
           "disallowed_as_default_action_reason": "",
@@ -58337,7 +58779,7 @@
           "primitives": []
         }
       ],
-      "default_action_handle": 536870959,
+      "default_action_handle": 536870960,
       "action_profile": "",
       "default_next_table_mask": 0,
       "ap_bind_indirect_res_to_match": [],
@@ -58430,32 +58872,32 @@
     {
       "fully_qualified_name": "mau[1].dp.match_input_xbar_din_power_ctl",
       "name": "stage_1_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "000000000000002000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[2].dp.match_input_xbar_din_power_ctl",
       "name": "stage_2_match_input_xbar_din_power_ctl",
-      "value": "0000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
-    },
-    {
-      "fully_qualified_name": "mau[2].dp.xbar_hash.hash.parity_group_mask",
-      "name": "stage_2_parity_group_mask",
-      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001000000010000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[3].dp.match_input_xbar_din_power_ctl",
       "name": "stage_3_match_input_xbar_din_power_ctl",
-      "value": "0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+    },
+    {
+      "fully_qualified_name": "mau[3].dp.xbar_hash.hash.parity_group_mask",
+      "name": "stage_3_parity_group_mask",
+      "value": "00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[4].dp.match_input_xbar_din_power_ctl",
       "name": "stage_4_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[5].dp.match_input_xbar_din_power_ctl",
       "name": "stage_5_match_input_xbar_din_power_ctl",
-      "value": "0000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[5].dp.xbar_hash.hash.parity_group_mask",
@@ -58465,17 +58907,17 @@
     {
       "fully_qualified_name": "mau[6].dp.match_input_xbar_din_power_ctl",
       "name": "stage_6_match_input_xbar_din_power_ctl",
-      "value": "0000001800000008000000000000000000000000000000a00000000000000000000000440000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000005000000028000000000000000000000000000000400000000000000000000000440000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[6].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_6_parity_group_mask",
-      "value": "00000001000000000000000c00000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "00000001000000000000000c00000000000000020000000000000008000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[7].dp.match_input_xbar_din_power_ctl",
       "name": "stage_7_match_input_xbar_din_power_ctl",
-      "value": "0000001800000000000000000000000000000040000000200000000000000000000000240000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000005000000000000000000000000000000040000000200000000000000000000000240000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[7].dp.xbar_hash.hash.parity_group_mask",
@@ -58485,7 +58927,7 @@
     {
       "fully_qualified_name": "mau[8].dp.match_input_xbar_din_power_ctl",
       "name": "stage_8_match_input_xbar_din_power_ctl",
-      "value": "0000003a0000000c000000000000000000000024000000400000000000000000000000c4000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "000000d20000000c000000000000000000000024000000800000000000000000000000c4000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[9].dp.match_input_xbar_din_power_ctl",
@@ -58500,17 +58942,17 @@
     {
       "fully_qualified_name": "mau[10].dp.match_input_xbar_din_power_ctl",
       "name": "stage_10_match_input_xbar_din_power_ctl",
-      "value": "0000000a00000006000000000000000000000000000000c00000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000001200000036000000000000000000000000000000800000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[10].dp.xbar_hash.hash.parity_group_mask",
       "name": "stage_10_parity_group_mask",
-      "value": "00000001000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "00000003000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[11].dp.match_input_xbar_din_power_ctl",
       "name": "stage_11_match_input_xbar_din_power_ctl",
-      "value": "0000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+      "value": "0000000000000000000000000000000000000000000000400000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
     },
     {
       "fully_qualified_name": "mau[11].dp.xbar_hash.hash.parity_group_mask",
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info
similarity index 98%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/fabric.p4info
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info
index b47cabe..8e9a4eb 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/fabric.p4info
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/fabric.p4info
@@ -23,7 +23,7 @@
   }
   match_fields {
     id: 1
-    name: "ipv4.dst_addr"
+    name: "spgw_meta.s1u_sgw_addr"
     bitwidth: 32
     match_type: EXACT
   }
@@ -395,6 +395,13 @@
 }
 actions {
   preamble {
+    id: 16808035
+    name: "spgw_ingress.gtpu_decap"
+    alias: "gtpu_decap"
+  }
+}
+actions {
+  preamble {
     id: 16784665
     name: "spgw_ingress.set_dl_sess_info"
     alias: "set_dl_sess_info"
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/tofino.bin
similarity index 78%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/tofino.bin
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/tofino.bin
index a2dc6aa..e5f58ec 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montana/tofino.bin
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric-spgw/montara/tofino.bin
Binary files differ
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/context.json
index 8774501..c267fb7 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/context.json
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/mavericks/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "02/04/18 01:26:08",
+  "build_date": "02/11/18 20:58:27",
   "compiler_version": "6.0.0-alpha.4",
   "program_name": "main",
   "learn_quanta": [],
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/context.json b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json
similarity index 99%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/context.json
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json
index 71f34b0..adabcaa 100644
--- a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/context.json
+++ b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/context.json
@@ -1,5 +1,5 @@
 {
-  "build_date": "02/04/18 01:26:22",
+  "build_date": "02/11/18 20:58:47",
   "compiler_version": "6.0.0-alpha.4",
   "program_name": "main",
   "learn_quanta": [],
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/fabric.p4info b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/fabric.p4info
similarity index 100%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/fabric.p4info
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/fabric.p4info
diff --git a/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/tofino.bin b/pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/tofino.bin
similarity index 100%
rename from pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montana/tofino.bin
rename to pipelines/fabric-pro/src/main/resources/p4c-out/tofino/fabric/montara/tofino.bin
Binary files differ